我最近遇到一个问题,就是多个进程对某个文件并发写,用fcntl加锁,但是这样达不到按照访问先后或者优先级进行排队的功能。 现阶段的实现是用不同的休眠时间达到优先级的目的的,比如优先级高的休眠时间短,尝试获得锁的频率就高。 但这样始终不理想,请问各位大大有没有更好,更标准的实现方式的经验呢? 谢谢。
启动一个写文件的进程,其它进程向他发消息。。######多个进程写一个文件推荐代理模式,由代理进程负责数据的写入,其他进程只负责将数据发给代理进程######谢谢两位大哥的指导,明白要怎么做了。
######上面两位的思路很正确。把写文件的功能独立出来,由专门的进程处理。还可以设定一个专门的队列进程,这个进程根据一定规则维护一个队列,其它进程只要把数据交给这个进程就可以了。队列文件进程自己判断应该把数据放到队列哪个位置。写进程只需要去队列头取数据就是。 启动一个写文件的进程,其它进程向他发消息。。######多个进程写一个文件推荐代理模式,由代理进程负责数据的写入,其他进程只负责将数据发给代理进程######谢谢两位大哥的指导,明白要怎么做了。
######上面两位的思路很正确。把写文件的功能独立出来,由专门的进程处理。还可以设定一个专门的队列进程,这个进程根据一定规则维护一个队列,其它进程只要把数据交给这个进程就可以了。队列文件进程自己判断应该把数据放到队列哪个位置。写进程只需要去队列头取数据就是。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。