成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

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

查看所有信號(hào)

首先,我們需要打開(kāi)Ubuntu虛擬機(jī),并在終端輸入命令kill -l來(lái)查看所有信號(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 ```

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

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

```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",說(shuō)明信號(hào)被正確地收到并處理。

等待信號(hào)

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

定時(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)來(lái)決定在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)單使用方法。通過(guò)本文所講解的案例,相信你對(duì)Python信號(hào)模塊的基本使用有了更深入的了解。

標(biāo)簽: