天天看點

linux shell 多線程執行程式

Shell中并沒有真正意義的多線程,要實作多線程可以啟動多個後端程序,最大程度利用cpu性能。

直接看代碼示例吧。

(1) 順序執行的代碼

輸出:

(2) 并行代碼

使用'&'+wait 實作“多程序”實作

 (3) 對于大量處理任務如何實作啟動背景程序的數量可控?

  簡單的方法可以使用2層for/while循環實作,每次wait内層循環的多個背景程式執行完成。

  但是這種方式的問題是,如果内層循環有“慢節點”可能導緻整個任務的執行執行時間長。

  更進階的實作可以看(4)

(4) 使用命名管道(fifo)實作每次啟動背景程序數量可控。 

參考:http://lawrence-zxc.github.io/2012/06/16/shell-thread/

繼續閱讀