python kill 主線程后如何讓子線程也停止執(zhí)行,具體怎么操作,我的情況如下
胡說叔叔
2019-05-07 09:23:22
TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊
之前也解決過這樣的問題,用到了psutil模塊,原理就是子進(jìn)程定期檢查父進(jìn)程是否存在,不存在就退出。例子如下:frommultiprocessingimportProcessimporttimeimportpsutilimportosdefworker(pid,n):pps=psutil.Process(pid=pid)whileTrue:try:ifpps.status()in(psutil.STATUS_DEAD,psutil.STATUS_STOPPED):breakexceptpsutil.NoSuchProcess:break#處理...print(n,time.time())time.sleep(1)if__name__=='__main__':ps=[]pid=os.getpid()forcodein('aa','bb','cc'):p=Process(target=worker,args=(pid,code,))p.daemon=Truep.start()ps.append(p)forpinps:p.join()print('parentexit!!!!!!')
舉報