卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Python信號(hào)模塊signal的簡(jiǎn)單使用

在Unix系統(tǒng)的多進(jìn)程程序中,Python信號(hào)模塊signal起著重要的作用。然而,由于內(nèi)核原因,Windows對(duì)信號(hào)模塊的支持并不理想。因此,本文將基于Ubuntu系統(tǒng),通過一個(gè)簡(jiǎn)單案例來講解Pyt

在Unix系統(tǒng)的多進(jìn)程程序中,Python信號(hào)模塊signal起著重要的作用。然而,由于內(nèi)核原因,Windows對(duì)信號(hào)模塊的支持并不理想。因此,本文將基于Ubuntu系統(tǒng),通過一個(gè)簡(jiǎn)單案例來講解Python信號(hào)模塊signal的使用。

查看所有信號(hào)

首先,我們需要打開Ubuntu虛擬機(jī),并在終端輸入命令kill -l來查看所有信號(hào)。以下是顯示結(jié)果:

``` 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN 1 36) SIGRTMIN 2 37) SIGRTMIN 3 38) SIGRTMIN 4 39) SIGRTMIN 5 40) SIGRTMIN 6 41) SIGRTMIN 7 42) SIGRTMIN 8 43) SIGRTMIN 9 44) SIGRTMIN 10 45) SIGRTMIN 11 46) SIGRTMIN 12 47) SIGRTMIN 13 48) SIGRTMIN 14 49) SIGRTMIN 15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX ```

編寫信號(hào)處理函數(shù)

接下來,我們使用vi命令創(chuàng)建一個(gè)名為的文件,并在其中編寫以下代碼:

```python import signal import time def Handler(signum, frame): print("kill message") (, Handler) (4) print('game over') ```

這段代碼首先導(dǎo)入了信號(hào)模塊signal,然后定義了一個(gè)處理函數(shù)Handler。接著,我們注冊(cè)了處理函數(shù)與終端停止符對(duì)應(yīng)的信號(hào)SIGTSTP。最后,程序暫停了4秒鐘,然后打印出了"game over"。

運(yùn)行代碼并中止程序

在終端中運(yùn)行代碼,當(dāng)代碼運(yùn)行時(shí)按下電腦的CTRL Z組合鍵,即可中止程序。結(jié)果如下圖所示:

``` $ python3 ^Z kill message ```

從輸出結(jié)果可以看出,成功打印出了"kill message",說明信號(hào)被正確地收到并處理。

等待信號(hào)

我們還可以使用(4)替換為(),讓進(jìn)程暫停等待信號(hào)的到來。

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

此外,我們還可以修改中的代碼,實(shí)現(xiàn)定時(shí)發(fā)送信號(hào)的功能。具體代碼如下:

```python import signal def Handler(signum, frame): print("Now, it's the time") exit() (, Handler) (5) while True: pass ```

這段代碼使用(5)來決定在5秒后發(fā)送信號(hào)SIGALRM。而Handler函數(shù)會(huì)在收到該信號(hào)后打印出"Now, it's the time"并退出程序。

接收到定時(shí)信號(hào)

在終端中運(yùn)行代碼后,等待5秒鐘,我們將收到定時(shí)信號(hào):

``` $ python3 Now, it's the time ```

以上就是Python信號(hào)模塊signal的簡(jiǎn)單使用方法。通過本文所講解的案例,相信你對(duì)Python信號(hào)模塊的基本使用有了更深入的了解。

標(biāo)簽: