linux的I/O重定向和管道的檔案描述符運用,及shell如何實現多執行緒?

阿啄debugIT發表於2020-10-30

前言

shell指令碼的執行效率雖高,但當任務量巨大時仍然需要較長的時間,尤其是需要執行一大批的命令時。因為預設情況下,shell指令碼中的命令是序列執行的。如果這些命令相互之間是獨立的,則可以使用“併發”的方式執行這些命令,這樣可以更好地利用系統資源,提升執行效率,縮短指令碼執行的時間。如果命令相互之間存在互動,則情況就複雜了,那麼不建議使用shell指令碼來完成多執行緒的實現。

為了方便闡述,使用一段測試程式碼。在這段程式碼中,通過seq命令輸出1到10,使用for...in語句產生一個執行10次的迴圈。每一次迴圈都執行sleep 1,並echo出當前迴圈對應的數字。

注意:

真實的使用場景下,迴圈次數不一定等於10,或高或低,具體取決於實際的需求。
真實的使用場景下,迴圈體內執行的語句往往比較耗費系統資源,或比

相關文章