[linux]wait詳解

wait:進程等待

主要有兩種等待方式:阻塞式等待和非阻塞式等待

阻塞式等待:如果子進程正在運行,父進程將會一直等待著子進程運行結束,并且自己什么事都不干

非阻塞式等待:如果子進程正在運行,父進程將會訪問看子進程是否運行結束,如果運行結束,則父進程開始運行;否則,父進程干其他的事,直到子進程運行結束。

阻塞式等待例程:

這里寫圖片描述
這里寫圖片描述

運行結果:

這里寫圖片描述

休眠5秒后:

這里寫圖片描述

這里,有幾個點需要注意一下:

WIFEXITED(status):status的低8位,表示進程退出時的信號。0代表沒有收到信號。非0表示收到信號。

WEXITSTATUS(status):status的次低8位,表示進程的退出碼

非阻塞等待例程:

這里寫圖片描述
這里寫圖片描述

運行結果:

這里寫圖片描述
sleep(2)后:
這里寫圖片描述

進程等待可能有幾種結果:

(1) 等待成功,返回子進程的退出碼
(2) 等待成功,但是卻異常退出
(3) 等待失敗,直接退出

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382723.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382723.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382723.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos 使vim支持+python和+python3

本文為了給ycm服務,不單獨存在。 查看是否支持python vim --version | grep python然后 下載vim8源碼: git clone https://github.com/vim/vim.git 1 進行編譯安裝,添加python3和python2.7的支持: 進入下載的vim的源碼文件夾中&#x…

ffmpeg的學習-00

命令行 大體樣式 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...有道翻譯的 以后仔細回看 2.描述 ffmpeg是一個非常快的視頻和音頻轉換器,也可以從一個實時音頻/視頻源抓取。它還可以轉換之間的任意采樣…

[Linux]消息隊列

我們知道進程間通信的方法有多種,主要有管道,消息隊列,信號量,共享內存,socket等。之前介紹過管道,今天再介紹一個新的概念–消息隊列。 消息隊列:將一個進程到另一個進程之間發送數據塊的方式…

詳解centos7 YCM YouCompleteMe自動補全安裝,親測成功

文章經重新排版轉移至以下鏈接 https://blog.csdn.net/csdn_kou/article/details/84633663

python 異步與io

文檔地址: https://docs.python.org/zh-cn/3/library/asyncio.html 以后再記錄學習筆記 待續。。。

tornado 學習注意事項--00

設置url匹配的時候, (r/(.*), AMStaticFileHandler,dict(pathos.path.join(current_path, html), default_filenameindex.html))像這種語句要放到最后,因為放到前面的話, 后面的就無法匹配!

C++關鍵字速查手冊

[TOC] https://blog.csdn.net/csdn_kou/article/details/81113215 C98關鍵字 C11 關鍵字共73個 alignas alignof用于獲取取指定表達式指定的(類似sizeof,可以直接是類型名)的對齊(alignment)。alignas用于聲明時指定對齊類似于現有的類型…

[Linux]信號

Linux下的信號是一個什么概念呢。我們在現實生活中也遇到過信號之類的。比如紅綠信號燈,班主任叫你去辦公室并且臉色不好,諸如此類的都會給你一個信號。讓你辨別事情的發生。同樣,Linux下也有許多的信號,讓你執行相應的操作。比如…

怎么用VLC播放器將m3u8鏈接視頻下載到本地

轉載 https://blog.csdn.net/saddyyun/article/details/85245135

【1】C++面試題函數引用重載宏命名空間

函數重載的條件 ? 同一個名字 ? 函數名字相同 ? 參數列表不同 ? 同一個作用域 為什么c支持函數重載而c不支持? c函數名字的修飾規則不一樣。c編譯器對函數修飾規則把int的參數列表形式加了進來,從而保證底層使用不同 cAdd(int a,int b)_AddcA…

[數據結構]Map和Set

說起map和set,想必我們都學過紅黑樹了吧,map和set就是紅黑樹的一個應用領域。它的底層就是由紅黑樹來實現的。下面簡單說一下map和set的使用吧。 首先,有一個栗子是這樣的,讓我們統計出每種水果出現的次數。 我們會想到怎么解決…

js獲取Json對象的長度

有兩種Json形式: 第一種: var json1 {"data":[{"name":"zs","age":"10"}]};對于這種格式的json數據,如果想獲取data的長度,就可以用以下這種方式: var length …

生產者消費者模型(條件變量)

三種關系:互斥,同步,互斥和同步 兩類角色:生產者,消費者(線程) 一個交易場所:生產者消費者共享的區域 賣蘋果的模型 dish上面只有一個蘋果買家必須要等賣家把蘋果放到dish上才可以去買蘋果。…

linux之信號

信號:在生活中,我們遇到過不同種類的信號,比如:(交通信號,乃至某個人的表情,動作等帶給你不同的信號)然而,在我們的linux下,我們最熟悉的就是,當遇…

視頻解析有感,在解析 iqiyi與qq視頻的時候,記錄一些發現

最近對iqiyi與qq視頻解析發現,兩個網站的解析流程,尤其是反解析措施 各有特點,簡單記錄一下 先說iqiyi, 瀏覽器模擬移動端可以拿到視頻的mp4鏈接,這個不多說。 iqiyiPC端瀏覽器獲取 ts過程: a.iqiyi一次性…

C語言atoi函數的用法

#include < stdlib.h > int atoi(const char *nptr);用法&#xff1a;將字符串里的數字字符轉化為整形數。返回整形值。 注意&#xff1a;轉化時跳過前面的空格字符&#xff0c;直到遇上數字或正負符號才開始做轉換&#xff0c;而再遇到非數字或字符串結束時(’/0’)才…

[Linux]繼續探究mysleep函數(競態條件)

之前我們探究過mysleep的簡單用法&#xff0c;我們實現的代碼是這樣的&#xff1a; #include<stdio.h> #include<signal.h>void myhandler(int sig) {}unsigned int mysleep(unsigned int timeout) {struct sigaction act,oact;act.sa_handler myhandler;sigempt…

C語言的atoi和C++的to_string

to_stringint to string將其他型轉換成字符串型atoiascii to integer是把字符串轉換成整型數的一個函數 to_string #include <iostream> // std::cout #include <string> // std::string, std::to_stringint main () {std::string perfect std::to_string…

ubuntu 升級python3.5到python3.7,并升級pip3

1, 下載python3.7.tgz 文件&#xff0c;解壓&#xff0c; 2. 編譯安裝 3. 刪除 /usr/bin 目錄下的 pip3, python3 4. 建立新的軟連接&#xff1a; #添加python3的軟鏈接ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3#添加 pip3 的軟鏈接ln -s /usr/local/python3/b…

[Linux]死鎖

死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局&#xff0c;當進程處于這種僵持狀態時&#xff0c;若無外力作用&#xff0c;它們都將無法再向前推進。之前信號量的時候我們知道&#xff0c;如果多個進程等待&#xff0c;主要體現在占有鎖的問題上。死鎖也可以被定義…