[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

相關文章
相關標籤/搜索