[apue] 管道原子写入量的一个疑问

PIPE_BUF定义了管道可原子写入的数据量,在个人系统(CentOS 6.7)上这个值是4096,写了个程序验证了一下,经过三个维度来考察:git

N: 生产者数量github

M:每一个生产者的生产次数测试

P:每次写入的块数(每块大小为PIPE_BUF)atom

实验发现,当P<=2时,不管如何提高N与M,都很难检测到(本身没检测到)数据穿插的现象;ip

而当P提高到3时,N与M很小就能够检测到数据穿插。因此这里有一个疑问:底层的PIPE原子写入的数据量是否是2 * PIPE_BUF ?get

不然如何解释上面的现象。it

 

测试代码pip

相关文章
相关标签/搜索