日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

[linux] 线程和wait命令,sleep命令

發布時間:2025/5/22 linux 186 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [linux] 线程和wait命令,sleep命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在linux腳本編程中使用多線程編程,其中wait命令可以實現shell的多線程同步控制。

1. 啟動后臺子任務

  在執行命令后加&操作符,表示將命令放在子shell中異步執行。可以達到多線程效果。如下,

sleep 10 #等待10秒,再繼續下一操作 sleep 10 & #當前shell不等待,后臺子shell等待

2. wait命令

  wait是用來阻塞當前進程的執行,直至指定的子進程執行結束后,才繼續執行。使用wait可以在bash腳本“多進程”執行模式下,起到一些特殊控制的作用。

? wait? [作業指示或進程號]

  eg:wait 23 ? or ?wait %1

? ? ? ? 1.等待作業號或者進程號制定的進程退出,返回最后一個作業或進程的退出狀態狀態。如果沒有制定參數,則等待所有子進程的退出,其退出狀態為0.

? ? ? ? 2.如果是shell中等待使用wait,則不會等待調用函數中子任務。在函數中使用wait,則只等待函數中啟動的后臺子任務。

? ? ? ? 3.在shell中使用wait命令,相當于高級語言里的多線程同步。

?example:

1.使用wait等待所有子任務結束。

#!/bin/sh echo “1” sleep 5& echo “3” echo “4” wait #會等待wait所在bash上的所有子進程的執行結束,本例中就是sleep 5這句 輸出:echo”5

2.在函數中使用wait

#!/bin/bash source ~/.bashrc fun(){ echo "fun is begin.timeNum:$timeNum" local timeNum=$1 sleep $timeNum & wait #這個只等待wait前面sleep echo "fun is end.timeNum:$timeNum" } fun 10 & fun 20 & wait #如果fun里面沒有wait,則整個腳本立刻退出,不會等待fun里面的sleep echo "all is ending"

輸出結果為:

fun is begin.timeNum:10 fun is begin.timeNum:20 fun is end.timeNum:10 fun is end.timeNum:20 all is ending

?

轉載于:https://www.cnblogs.com/xiaofeiIDO/p/6170199.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的[linux] 线程和wait命令,sleep命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。