- 論壇徽章:
- 0
|
本帖最后由 dandy1992 于 2014-05-06 17:04 編輯
在工作編寫腳本的時(shí)候,因?yàn)閿?shù)據(jù)量比較大,經(jīng)常要寫入一個(gè)文件中,因此用了shell的多線程處理,我想詢問下各位shell大牛對(duì)管道線程安全的理解,個(gè)人覺得不是線程安全的,下面是我的測(cè)試腳本- echo {0..10000} >> a.tmp &
- echo {0..10000} >> a.tmp &
- echo {0..10000} >> a.tmp &
- echo {0..10000} >> a.tmp
- wait
- awk '{a+=NF;print NF}END{print a;}' a.tmp
復(fù)制代碼 測(cè)試結(jié)果輸出是
- 10001
- 10001
- 19439
- 563
- 40004
復(fù)制代碼 因?yàn)槊總(gè)echo都有一個(gè)換行,所以肯定有4行,如果每行都有10001個(gè)數(shù)據(jù),那就說明是線程安全的,但測(cè)試結(jié)果每行數(shù)據(jù)量不一致
shell內(nèi)部原理理解不深,望各位指教 |
|