五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【python】signal信號(hào)處理

2022-01-18 10:02 作者:阿提艾斯  | 我要投稿

1、模塊功能

signal包負(fù)責(zé)在python程序內(nèi)部處理信號(hào),典型的操作包括預(yù)設(shè)信號(hào)處理函數(shù),暫停并等待信號(hào),以及定時(shí)發(fā)出SIGALRM等。

windows和Linux都可以使用signal庫,但是部分信號(hào)只支持Linux,比如signal.SIGALRM。所以使用signal庫時(shí)要注意平臺(tái)。詳情可以參考文檔:https://docs.python.org/3/library/signal.html

信號(hào)是一種進(jìn)程之間通訊的方式,是一種軟件中斷。一個(gè)進(jìn)程一旦接收到信號(hào)就會(huì)打斷原來的程序執(zhí)行流程來處理信號(hào)。


2、模塊安裝

python自帶,沒有特意安裝


3、模塊使用

3.1 預(yù)設(shè)信號(hào)處理函數(shù)

上述代碼含義:當(dāng)接收到停止終端信號(hào)(signal.SIGTSTP),調(diào)用處理函數(shù)handler,輸出信號(hào)值和進(jìn)程棧信息。

輸出信號(hào)值和進(jìn)程棧信息

由結(jié)果可知,接收到的信號(hào)值為20(可以參考文章《linux - signal信號(hào)》查閱信號(hào)名和信號(hào)值對(duì)應(yīng)情況),frame值為:?<frame at 0xb670fc30, file '1.py', line 12, code <module>>

解釋:

signal.signal(signalnum, handler)函數(shù)有兩個(gè)參數(shù):

signalnum: 某個(gè)信號(hào),比如signal.SIGTSTP

handler: 信號(hào)處理函數(shù)。

signal調(diào)用hander的時(shí)候,會(huì)傳遞兩個(gè)參數(shù):

signum: 這個(gè)就是信號(hào)值,也就是signalnum

frame: 這個(gè)參數(shù)是用來獲得信號(hào)發(fā)生時(shí),進(jìn)程棧的情況。


3.2 定時(shí)發(fā)出信號(hào)

使用的函數(shù)是:signal.alarm()

該函數(shù)被用于在一定時(shí)間之后,向進(jìn)程自身發(fā)送SIGALRM信號(hào)。

代碼示例:

上述代碼含義:程序運(yùn)行5秒后向自身發(fā)送SIGALRM信號(hào),調(diào)用handler函數(shù)。主程序運(yùn)行10秒之后打印信息。為了證明signal.alarm(5)確實(shí)生效了,特意添加了一些打印時(shí)間的信息。運(yùn)行結(jié)果如下:

signal.alarm(5)

由上圖輸出結(jié)果可知:

11:32:37,程序開始運(yùn)行

11:32:42,handler函數(shù)被調(diào)用起來了,時(shí)間經(jīng)過了11:32:42 - 11:32:37 = 5秒。說明signal.alarm(5)生效了。

11:32:47,從程序運(yùn)行,到現(xiàn)在共10秒,接著輸出主函數(shù)后面的內(nèi)容。

程序總共耗時(shí)10秒鐘,由此也可以推斷出,signal.alarm()函數(shù)不是阻塞式的。

以上程序是在linux上運(yùn)行的,如果換到windows上運(yùn)行會(huì)報(bào)錯(cuò):

AttributeError: module 'signal' has no attribute 'SIGALRM',原因請參考4.1.

報(bào)錯(cuò)



4、遇到的問題

4.1 在windows上運(yùn)行程序報(bào)錯(cuò):AttributeError: module 'signal' has no attribute 'SIGALRM'

原因:部分信號(hào)不支持windows,根據(jù)官方文檔,windows可使用的信號(hào)有:SIGABRT、SIGFPE、SIGILL、SIGINT、SIGSEGV、SIGTERM or SIGBREAK.

https://docs.python.org/3/library/signal.html?highlight=signal#module-signal

官方signal支持windows信號(hào)說明

4.2 待續(xù)...


5、參考資料

5.1?https://www.cnblogs.com/madsnotes/articles/5688681.html

5.2?https://docs.python.org/3/library/signal.html

【python】signal信號(hào)處理的評(píng)論 (共 條)

分享到微博請遵守國家法律
临夏市| 华蓥市| 怀远县| 章丘市| 油尖旺区| 临颍县| 乌拉特中旗| 鄢陵县| 绵阳市| 晋城| 淳化县| 铁力市| 牡丹江市| 卢氏县| 金平| 盐亭县| 枣强县| 陵水| 九寨沟县| 聂荣县| 惠州市| 将乐县| 抚宁县| 江口县| 汝阳县| 甘南县| 盐池县| 韶山市| 兰考县| 开原市| 南充市| 张家港市| 正蓝旗| 正安县| 汉中市| 淮南市| 舟山市| 天水市| 东至县| 贞丰县| 武强县|