亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python多線程下信號處理程序示例

系統 1521 0

本文實例為大家分享了python多線程下信號處理程序示例的具體代碼,供大家參考,具體內容如下

下面是一個網上轉載的實現思路,經過驗證,發現是可行的,就記錄下來。

思路

python多線程中要響應Ctrl+C的信號以殺死整個進程,需要:

1.把所有子線程設為Daemon;
2.使用isAlive()函數判斷所有子線程是否完成,而不是在主線程中用join()函數等待完成;
3.寫一個響應Ctrl+C信號的函數,修改全局變量,使得各子線程能夠檢測到,并正常退出。

源碼

            
#!/usr/bin/env python
#encoding: utf-8
#filename: signal_demo.py
 
import threading, signal
 
 
def do_job(i, step):
 global exited
 idx = i
 while not exited:
  if(idx < 10000000):
   print 'thread[%d]: idx=%d' % (i, idx)
   idx = idx + step
  else:
   break
 if exited:
  print 'receive a signal to exit, thread[%d] stop.' % i
 else:
  print 'thread[%d] complete.' % i
 
def sig_handler(sig, frame):
 global exited
 exited = True
 print 'receive a signal %d, exited=%d' % (sig, exited)
 
def main():
 #set signal handler
 signal.signal(signal.SIGTERM, sig_handler)
 signal.signal(signal.SIGINT, sig_handler)
 pool = []
 pool_size = 50
 for i in range(pool_size):
  t = threading.Thread(target = do_job, args = (i, pool_size))
  t.setDaemon(True)
  pool.append(t)
  t.start()
 while 1:
  alive = False
  for i in range(pool_size):
   alive = alive or pool[i].isAlive()
   if alive == True:
    break
  if not alive:
   break
 
if __name__ == '__main__':
 exited = False
 main()
          

命令行運行

            
python signal_demo.py
          

截圖

python多線程下信號處理程序示例_第1張圖片

參考文獻

Python中用Ctrl+C終止多線程程序的問題解決

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本a视频在线观看 | 精品国产一区二区三区免费 | 情趣视频网站在线观看 | 成人午夜视频在线观看 | 视频二区精品中文字幕 | 日韩精品视频一区二区三区 | h片免费网站| 看片久久| 亚欧美综合| 国产成人精品午夜在线播放 | 亚洲精品免费观看 | 羞羞视频网 | 亚色视频在线观看 | 老师在办公室被躁到白浆 | 精品一区二区三区免费爱 | 久久久91精品国产一区二区 | 日日狠狠太爽爽 | 亚洲区欧美区 | 亚洲国产www| 国产成人久久一区二区三区 | 国产精品视频福利 | 国产欧美成人免费观看视频 | 欧美18videosex护士 | aaa一级黄色片 | 日韩国产综合 | 男人在线影院 | 泰国一级毛片aaa下面毛多 | 久久日韩精品 | 亚洲一区二区三区免费视频 | 国产成年网站v片在线观看 国产成人 免费观看 | 麻豆首页 | 天天靠天天擦天天摸 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 久久成人18免费 | 精品国产品香蕉在线观看 | 99re热久久精品这里都是精品 | 黑人巨大vs日本人优 | 日韩一区二区三区免费视频 | 大尺度福利视频在线观看网址 | 97免费观看 | 国产成人亚洲精品一区二区在线看 |