成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > python中對(duì)信號(hào)的處理詳解

python中對(duì)信號(hào)的處理詳解

熱門標(biāo)簽:銀川電話機(jī)器人電話 上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 預(yù)覽式外呼系統(tǒng) 如何地圖標(biāo)注公司 外賣地址有什么地圖標(biāo)注 企業(yè)彩鈴地圖標(biāo)注 長春極信防封電銷卡批發(fā) 煙臺(tái)電話外呼營銷系統(tǒng) 電銷機(jī)器人錄音要學(xué)習(xí)什么

什么是信號(hào)

信號(hào)(signal)-- 進(jìn)程間通訊的一種方式,也可作為一種軟件中斷的方法。一個(gè)進(jìn)程一旦接收到信號(hào)就會(huì)打斷原來的程序執(zhí)行來按照信號(hào)進(jìn)行處理。

簡化術(shù)語,信號(hào)是一個(gè)事件,用于中斷運(yùn)行功能的執(zhí)行。信號(hào)始終在主Python線程中執(zhí)行。對(duì)于信號(hào),這里不做詳細(xì)介紹。

Python封裝了操作系統(tǒng)的信號(hào)功能的庫 singal 的庫。singal 庫可以使我們?cè)趐ython程序中中實(shí)現(xiàn)信號(hào)機(jī)制。

Python的信號(hào)處理

首先需要了解Python為什么要提供 signal Library。信號(hào)庫使我們能夠使用信號(hào)處理程序,以便當(dāng)接收信號(hào)時(shí)都可以執(zhí)行自定義任務(wù)。

Mission:當(dāng)接收到信號(hào)時(shí)執(zhí)行信號(hào)處理方法

可以通過使用 signal.singal() 函數(shù)來實(shí)現(xiàn)此功能

Python對(duì)信號(hào)的處理

通常情況下Python 信號(hào)處理程序總是會(huì)在主 Python 主解析器的主線程中執(zhí)行,即使信號(hào)是在另一個(gè)線程中接收的。 這意味著信號(hào)不能被用作線程間通信的手段。 你可以改用 threading 模塊中的同步原語。

Python信號(hào)處理流程,需要對(duì)信號(hào)處理程序(signal handling )簡要說明。signal handling 是一個(gè)任務(wù)或程序,當(dāng)檢測(cè)到特定信號(hào)時(shí),處理函數(shù)需要兩個(gè)參數(shù),即信號(hào)id signal number (Linux 中 1-64),與堆棧幀 frame。通過相應(yīng)信號(hào)啟動(dòng)對(duì)應(yīng) signal handling ,signal.signal() 將為信號(hào)分配 處理函數(shù)。

如:當(dāng)運(yùn)行一個(gè)腳本時(shí),取消,此時(shí)是捕獲到一個(gè)信號(hào),可以通過捕獲信號(hào)方式對(duì)程序進(jìn)行異步的優(yōu)雅處理。通過將信號(hào)處理程序注冊(cè)到應(yīng)用程序中:

import signal  
import time 

def handler(a, b):  # 定義一個(gè)signal handling
    print("Signal Number:", a, " Frame: ", b)  
  
signal.signal(signal.SIGINT, handler)  # 將handle分配給對(duì)應(yīng)信號(hào)
  
while True:  
    print("Press ctrl + c")
    time.sleep(10)

如果不對(duì)對(duì)應(yīng)信號(hào)進(jìn)行捕獲處理時(shí),python將會(huì)拋出異常。

root@Seal:/mnt/d/pywork/signal# python signal.py
^CTraceback (most recent call last):
  File "signal.py", line 3, in module>
    while True:
KeyboardInterrupt


信號(hào)枚舉

信號(hào)的表現(xiàn)為一個(gè)int,Python的信號(hào)庫有對(duì)應(yīng)的信號(hào)枚舉成員

其中常用的一般有,

SIGINT control+c

SIGTERM 終止進(jìn)程 軟件終止信號(hào)

SIGKILL 終止進(jìn)程 殺死進(jìn)程

SIGALRM 超時(shí)


信號(hào) 說明
SIG_DFL
SIG_IGN 標(biāo)準(zhǔn)信號(hào)處理程序,它將簡單地忽略給定的信號(hào)
SIGABRT SIGIOT 來自 abort 的中止信號(hào)。
abort 導(dǎo)致異常進(jìn)程終止。通常由檢測(cè)內(nèi)部錯(cuò)誤或嚴(yán)重破壞約束的庫函數(shù)調(diào)用。例如,如果堆的內(nèi)部結(jié)構(gòu)被堆溢出損壞, malloc() 將調(diào)用 abort()
SIGALRM
SIGVTALRM
SIGPROF
如果你用 setitimer 這一類的報(bào)警設(shè)置函數(shù)設(shè)置了一個(gè)時(shí)限,到達(dá)時(shí)限時(shí)進(jìn)程會(huì)接收到 SIGALRM, SIGVTALRM 或者 SIGPROF。但是這三個(gè)信號(hào)量的含義各有不同,SIGALRM 計(jì)時(shí)的是真實(shí)時(shí)間,SIGVTALRM計(jì)時(shí)的是進(jìn)程使用了多少CPU時(shí)間,而 SIGPROF 計(jì)時(shí)的是進(jìn)程和代表該進(jìn)程的內(nèi)核用了多少時(shí)間。
SIGBUS 總線發(fā)生錯(cuò)誤時(shí),進(jìn)程接收到一個(gè)SIGBUS信號(hào)。舉例來說,存儲(chǔ)器訪問對(duì)齊或者或不存在對(duì)應(yīng)的物理地址都會(huì)產(chǎn)生SIGBUS信號(hào)。
SIGCHLD 當(dāng)子進(jìn)程終止、被中斷或被中斷后恢復(fù)時(shí),SIGCHLD信號(hào)被發(fā)送到進(jìn)程。該信號(hào)的一個(gè)常見用法是指示操作系統(tǒng)在子進(jìn)程終止后清理其使用的資源,而不顯式調(diào)用等待系統(tǒng)調(diào)用。
SIGILL 非法指令。當(dāng)進(jìn)程試圖執(zhí)行非法、格式錯(cuò)誤、未知或特權(quán)指令時(shí),SIGILL信號(hào)被發(fā)送到該進(jìn)程。
SIGKILL 發(fā)送SIGKILL信號(hào)到一個(gè)進(jìn)程可以使其立即終止(KILL)。與SIGTERM和SIGINT相不同的是,這個(gè)信號(hào)不能被捕獲或忽略,接收過程在接收到這個(gè)信號(hào)時(shí)不能執(zhí)行任何清理。 以下例外情況適用:
SIGINT 來自鍵盤的中斷 (CTRL + C)。 KeyboardInterrupt
SIGPIPE 當(dāng)一個(gè)進(jìn)程試圖寫入一個(gè)沒有連接到另一端進(jìn)程的管道時(shí),SIGPIPE信號(hào)會(huì)被發(fā)送到該進(jìn)程。
**SIGTERM ** 終結(jié)信號(hào)。 KILL -15 |KILL
SIGUSR1
SIGUSR2
用戶自定義信號(hào)
SIGWINCH 終端窗口大小已變化
SIGHUP 在控制終端上檢測(cè)到掛起或控制進(jìn)程的終止。

Reference:[signal-wikipedia](

信號(hào)函數(shù)

Python的信號(hào)庫中也有很多常用的函數(shù)

signal.alarm(time)

創(chuàng)建一個(gè) SIGALRM 類型的信號(hào),time為預(yù)定的時(shí)間,設(shè)置為0時(shí)取消先前設(shè)置的定時(shí)器

signal.pause()

可以使代碼邏輯處理過程睡眠,直到收到信號(hào),然后調(diào)用對(duì)應(yīng)的handler。

import signal
import os
import time

def do_exit(sig, stack):
    raise SystemExit('Exiting')

signal.signal(signal.SIGINT, signal.SIG_IGN)
signal.signal(signal.SIGUSR1, do_exit)

print('My PID:', os.getpid())

signal.pause()

在執(zhí)行時(shí),忽略了ctrl + c的信號(hào),對(duì)USR1做退出操作

signal.setitimer(which, seconds, interval)

which: signal.ITIMER_REAL,signal.ITIMER_VIRTUAL 或 signal.ITIMER_PROF

seconds:多少秒后觸發(fā)which。seconds設(shè)置為0可以清除which的計(jì)時(shí)器。

interval:每隔interval秒后觸發(fā)一次

os.getpid()

獲得當(dāng)前執(zhí)行程序的pid

Windows下信號(hào)的使用

在Linux中,可以通過任何可接受的信號(hào)枚舉值作為信號(hào)函數(shù)的參數(shù)。在Windows中,SIGABRT, SIGFPE, SIGINT, SIGILL, SIGSEGV, SIGTERM, SIGBREAK。

當(dāng)signal handling需要參數(shù)怎么辦

在一些時(shí)候,signal handling的操作需要對(duì)應(yīng)主進(jìn)程傳遞進(jìn)來一些函數(shù),而在整個(gè)項(xiàng)目中執(zhí)行過程中的變量與 signal handling不處于一個(gè)作用域中,而signal.signal() 不能傳遞其他的參數(shù),這個(gè)時(shí)候可以使用 partial 創(chuàng)建一個(gè)閉包來解決這個(gè)問題。

例如:

import signal
import os
import sys
import time

from functools import partial

"""
這里signal frame默認(rèn)參數(shù)需要放到最后
"""
def signal_handler(test_parameter1, test_parameter2, signal_num, frame):
    print "signal {} exit. {} {}".format(signal_num, test_parameter1, test_parameter2)
    sys.exit(1)


a=1
b=2
signal.signal(signal.SIGINT, partial(signal_handler, a, b) )
print('My PID:', os.getpid())

signal.pause()

忽略信號(hào)

signal定義了忽略接收信號(hào)的方法。為了實(shí)現(xiàn)信號(hào)的處理,需要使用signal.signal() 將默認(rèn)的信號(hào)與signal.SIG_IGN 注冊(cè),即可忽略對(duì)應(yīng)的信號(hào)中斷,kill -9 不可忽略 。

import signal
import os
import time

def receiveSignal(signalNumber, frame):
    print('Received:', signalNumber)
    raise SystemExit('Exiting')
    return

if __name__ == '__main__':
    # register the signal to be caught
    signal.signal(signal.SIGUSR1, receiveSignal)

    # register the signal to be ignored
    signal.signal(signal.SIGINT, signal.SIG_IGN)

    # output current process id
    print('My PID is:', os.getpid())

    signal.pause()

常用的信號(hào)

import signal
import os
import time
import sys

def readConfiguration(signalNumber, frame):
    print ('(SIGHUP) reading configuration')
    return

def terminateProcess(signalNumber, frame):
    print ('(SIGTERM) terminating the process')
    sys.exit()

def receiveSignal(signalNumber, frame):
    print('Received:', signalNumber)
    return
 
    signal.signal(signal.SIGHUP, readConfiguration)
    signal.signal(signal.SIGINT, receiveSignal)
    signal.signal(signal.SIGQUIT, receiveSignal)
    signal.signal(signal.SIGILL, receiveSignal)
    signal.signal(signal.SIGTRAP, receiveSignal)
    signal.signal(signal.SIGABRT, receiveSignal)
    signal.signal(signal.SIGBUS, receiveSignal)
    signal.signal(signal.SIGFPE, receiveSignal)
    #signal.signal(signal.SIGKILL, receiveSignal)
    signal.signal(signal.SIGUSR1, receiveSignal)
    signal.signal(signal.SIGSEGV, receiveSignal)
    signal.signal(signal.SIGUSR2, receiveSignal)
    signal.signal(signal.SIGPIPE, receiveSignal)
    signal.signal(signal.SIGALRM, receiveSignal)
    signal.signal(signal.SIGTERM, terminateProcess)

總結(jié)

到此這篇關(guān)于python中對(duì)信號(hào)處理的文章就介紹到這了,更多相關(guān)python信號(hào)處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 對(duì)Python信號(hào)處理模塊signal詳解
  • python GUI庫圖形界面開發(fā)之PyQt5信號(hào)與槽事件處理機(jī)制詳細(xì)介紹與實(shí)例解析
  • python多線程下信號(hào)處理程序示例

標(biāo)簽:佳木斯 西寧 湖北 宜昌 上饒 潮州 珠海 盤錦

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python中對(duì)信號(hào)的處理詳解》,本文關(guān)鍵詞  python,中,對(duì),信,號(hào)的,處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python中對(duì)信號(hào)的處理詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于python中對(duì)信號(hào)的處理詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品三级一区二区| 99久久精品免费视频| 女人色极品影院| 欧美视频亚洲色图| www五月天com| 亚洲 欧美综合在线网络| 色先锋aa成人| 午夜亚洲视频| 97视频在线观看网址| 91精品国产自产在线老师啪| 欧美一区二区免费视频| 中文字幕第3页| 精品在线播放视频| 午夜av中文字幕| 懂色av懂色av粉嫩av| 国产精品永久入口久久久| 国产精品免费不| 欧美精品精品一区| 欧美精品xxxxbbbb| 伊人成人开心激情综合网| 在线看片黄色| 国产又粗又猛又色又| 97人摸人人澡人人人超一碰| 亚洲精品第一国产综合精品| 国产精品九九视频| 精品国内自产拍在线观看视频| 超碰在线观看99| 欧美人与性动xxxx| 日日狠狠久久偷偷四色综合免费| 欧美女优在线| 亚洲一区二区三区乱码aⅴ| 国产精品美女久久久久久久| 88av在线播放| 成人在线免费观看视频| 666欧美在线视频| 欧美一级淫片aaaaaaa视频| 亚洲一区二三区| 日本在线不卡一区| 26uuu亚洲综合色| 亚洲free性xxxx护士hd| 国产理论片免费观看| 国产一级电影网| 精品少妇3p| 午夜伦理在线| 国产真人做爰毛片视频直播| 奇米影视第四色7777| 91精品久久久久久综合乱菊| 欧美人动性xxxxz0oz| 西西444www无码大胆| 久久亚洲天堂| 天堂中文字幕——hd| 精品国产一区a| 懂色av一区二区夜夜嗨| 992tv成人免费观看| 美女久久99| 国产精品电影久久久久电影网| 久久国产精品一区二区三区四区| 国产精品理论片| 日本免费一区二区三区视频| 先锋影音av资源站| 亚洲一级毛片| 日韩精品电影网| 亚洲三级在线视频| 最近中文字幕mv免费高清在线| 色综合电影网| 日韩在线视频免费| 国产一区二区在线观看免费| 国产三级国产精品| a黄色片在线观看| 国产成人在线中文字幕| 日本综合视频| 亚洲香肠在线观看| 久久不射2019中文字幕| 高清av在线| 999日本视频| 精品国产中文字幕第一页| 亚洲精品乱码| 国产精品第二页| 国内精品久久久久久久久电影网| 欧美婷婷久久| 黄色大片a级| 性感美女一区二区在线观看| av手机免费在线观看| 老司机精品在线| 亚洲区一区二区三| 日韩少妇与小伙激情| 国产亚洲精品久久久| 久久天天躁狠狠躁夜夜躁| 女同一区二区免费aⅴ| 久久精品99国产精品日本| 少妇av在线播放| 国产黄色成人av| 久久国产小视频| 性综艺节目av在线播放| 国产精品久久一区二区三区不卡| 日本一区二区三级电影在线观看| 热久久美女精品天天吊色| 99视频有精品| 91tv亚洲精品香蕉国产一区7ujn| 一色桃子久久精品亚洲| 国产精品入口麻豆九色| 午夜精品久久久久久久无码| 久久综合狠狠综合久久综合88| 亚洲一区3d动漫同人无遮挡| 亚洲自拍偷拍色片视频| 爱久久·www| 一级做a爱片性色毛片| 麻豆一区在线| 热99re久久精品这里都是免费| 青青草精品视频在线| 欧美日韩mp4| 一本大道一区二区三区| 国产精品国产三级国产试看| 精品免费av一区二区三区| 欧美激情中文字幕一区二区| 色欧美片视频在线观看在线视频| 久久亚洲捆绑美女| 91sese| 污版网站在线观看| 91在线视频播放地址| 一级做a爰片久久毛片| 日本成年免费网站| 欧美精品一区二区三区久久久竹菊| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩国产一二三区| a一级免费视频| 亚洲男人天堂九九视频| 亚洲综合在线一区二区| 久久久久免费网站| 99精品国产99久久久久久福利| www.99re.av| fc2成人免费人成在线观看播放| 97caopron在线视频| 日本成人性视频| 一区二区三区 在线观看视频| 91热门视频在线观看| 激情五月婷婷基地| 亚洲国产视频一区| 99热一区二区| 国产精品一区二区入口九绯色| 中文字幕在线观看的网站| www.精品久久| 91麻豆蜜桃一区二区三区| 国产乱码精品一区二区三区五月婷| 一区二区三区产品免费精品久久75| 欧美aaa免费| 成人午夜视频在线观看免费| 成人欧美一区二区三区黑人免费| 成人av动漫在线| 中国老女人av| 午夜影院在线观看视频| 91久久大香伊蕉在人线| 在线国产欧美| 日本中文字幕高清| 亚洲人在线播放| 亚洲精品字幕在线观看| 免费观看的黄色网址| 亚洲第一av在线| 亚洲综合精品久久| 日韩国产精品一区二区| 一级黄色短视频| 国产美女免费观看| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲AV无码精品自拍| 亚洲成人国产综合| 小说区图片区图片区另类灬| www.桃色av嫩草.com| 精品国产乱码久久久久久天美| 中文字幕被公侵犯的漂亮人妻| 国产后进白嫩翘臀在线观看视频| 久久中文字幕在线观看| 亚洲天堂男人天堂女人天堂| 中文字幕亚洲欧美日韩在线不卡| 国产91在线观看| 亚洲电影免费| 日韩精品最新网址| 尤物网站在线看| 国产精品女人毛片| 精品久久成人| 污污的网站18| 中文字幕视频在线免费欧美日韩综合在线看| 日本一区二区三区免费乱视频| 国产成人永久免费视频| 成人写真视频| 国产一区在线观看免费| 无码任你躁久久久久久老妇| 日韩亚洲欧美综合| 欧美在线一区二区三区| 人人爽香蕉精品| 蜜月aⅴ免费一区二区三区| 天天色天天射天天综合网| 亚洲国产一区自拍| 91久热免费在线视频| 三年中文高清在线观看第6集| 成人免费视频国产在线观看| 性感美女极品91精品| 久久理论片午夜琪琪电影网| 草裙成人精品一区二区三区| 三上悠亚国产精品一区二区三区| 91中文字精品一区二区| jizzjizz免费大全| 国产综合亚洲精品一区二| 国产在线视频在线| 国产亚洲精久久久久久无码77777| 亚洲精品美国一| 成人拍拍拍免费视频网站| 国产色产综合产在线视频| 国外成人在线播放| 96久久精品| 欧美最猛黑人xxxx黑人猛交3p| 日韩一区二区三区久久| 日韩在线视频免费| 在线观看免费污视频| 污影院在线观看| 色综合免费视频| 成人午夜sm精品久久久久久久| 成人高清免费观看mv| 国产成人一区在线| 国产 欧美 日韩 一区| 欧美另类变人与禽xxxxx| 青青草视频国产| 久久99热狠狠色一区二区| 制服丝袜影音先锋| 国语自产精品视频在线看| 国产91|九色| 亚洲成人福利视频| 中文字幕2区| 夜夜添无码一区二区三区| 91视频综合网| 一本色道**综合亚洲精品蜜桃冫| 精品视频高清无人区区二区三区| 成人在线网站| 日韩欧美精品中文字幕| 亚洲高清在线观看| 久久mv成人精品亚洲动漫| 亚洲午夜久久久久久久久电影院| 欧美又大粗又爽又黄大片视频| 情侣偷拍对白清晰饥渴难耐| 91国偷自产一区二区三区的观看方式| 亚洲特级黄色片| 欧美成人影院| 欧美色欧美亚洲另类二区| 自拍偷拍亚洲欧美日韩| 亚洲精品免费一区亚洲精品免费精品一区| 国产一区二区日韩| 亚洲摸摸操操av| 一本色道久久综合亚洲aⅴ蜜桃| www.成人网| 欧美色欧美亚洲另类二区精品| 91日韩视频| 亚洲美女精品久久| 精品国产乱码久久久久久蜜臀| 肉丝美足丝袜一区二区三区四| 日韩精品一区二区三区中文在线| 男女视频一区二区| 日韩精品一区二区三区中文精品| 菠萝菠萝蜜在线视频免费观看| av一区二区三区四区电影| 国产欧美日韩亚洲精品| 国内精品久久久久影院 日本资源| 综合分类小说区另类春色亚洲小说欧美| 久久久国产一区二区三区| 欧美日韩在线精品一区二区三区激情| 欧洲精品久久| xvideos国产在线视频| 久久porn| 精品日韩美女| 国产精品久久久久久久久久三级| 国产不卡av一区二区| 蜜桃视频在线观看播放| 少妇精品无码一区二区免费视频| 中文字幕xxxx| 国产熟女高潮一区二区三区| 最近久乱中文字幕| 尤物影院在线播放| 亚洲18在线| 香蕉影院在线观看| 69sex久久精品国产麻豆| 福利视频导航一区| 亚洲国产高清在线观看视频| 午夜天堂精品久久久久| 欧美精品v日韩精品v国产精品| 欧美激情专区| 亚洲精品aⅴ| 先锋影音在av资源看片| 久久久久国产精品熟女影院| 欧美成人视屏| 日韩欧美一区二区三区在线视频| 欧美成人性网| 成人精品久久av网站| av在线资源网| 日韩亚洲视频在线| 污网站在线免费看| 成人午夜在线观看视频| 91精品电影| 色偷偷噜噜噜亚洲男人的天堂| 欧美午夜激情影院| 日韩免费影院| 26uuu亚洲国产精品| 午夜不卡久久精品无码免费| 老司机午夜免费精品视频| 日韩欧美高清在线播放| av不卡一区二区| 草莓视频丝瓜在线观看丝瓜18| 欧美成人在线免费观看| 99久久夜色精品国产亚洲| 亚洲综合欧美| 成人精品电影在线| 日韩av一区二区在线观看| 亚洲激情电影中文字幕| 美女写真久久影院| 亚洲精品国精品久久99热一| 欧美一级精品在线| av影片免费在线观看| 欧美人一级淫片a免费播放| www.毛片.com| 手机看片福利永久国产日韩| 亚洲乱码国产乱码精品精大量| 亚洲精品中文在线| 亚洲同志网站入口| 国产69精品久久久久久久| 男女黄床上色视频| 在线天堂资源www在线污| 亚洲成色999久久网站| 久久国产日本精品| 日本爱爱免费视频| 国产精品久久一| 极品美妇后花庭翘臀娇吟小说|