当前位置: 技术问答>linux和unix
多进程读写问题
来源: 互联网 发布时间:2016-07-28
本文导语: 我做了一个测试,如果一个进程写一个文件要10S,那么会出现下面这种情况: 2个进程同时写一个文件消耗 25s左右 3个进程同时写一个文件消耗 70s左右 4个进程同时写一个文件消耗 105s左右 5个进程同时写一个文件...
我做了一个测试,如果一个进程写一个文件要10S,那么会出现下面这种情况:
2个进程同时写一个文件消耗 25s左右
3个进程同时写一个文件消耗 70s左右
4个进程同时写一个文件消耗 105s左右
5个进程同时写一个文件消耗 125s左右
6个进程同时写一个文件消耗 150s左右
为什么会这样,就算多进程抢占CPU 但是时间还是耗的过多了,而且 如果是每个进程同时访问不同文件就比这个时间明显要少。
2个进程同时写一个文件消耗 25s左右
3个进程同时写一个文件消耗 70s左右
4个进程同时写一个文件消耗 105s左右
5个进程同时写一个文件消耗 125s左右
6个进程同时写一个文件消耗 150s左右
为什么会这样,就算多进程抢占CPU 但是时间还是耗的过多了,而且 如果是每个进程同时访问不同文件就比这个时间明显要少。
|
那是因为一个写进程在持有写信号量的时候被中断,虽然别的写进程被调用了,也还是无法获得写信号量,只能阻塞等待。进程越多,这种竞争越明显