在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Python  Linux  網(wǎng)絡(luò)安全/ 請(qǐng)問(wèn):Python多線程的daemon為什么運(yùn)行一次就終止?

請(qǐng)問(wèn):Python多線程的daemon為什么運(yùn)行一次就終止?

我本來(lái)是想做一個(gè)cron job,也就是讓Python可以周期性地循環(huán)一個(gè)叫subtask的任務(wù)。

def subtask():
    next_call = time.time()
    while True:
        print (time.ctime(), datetime.datetime.now())
        next_call = next_call + 1;
        time.sleep(next_call - time.time())
def PeriodlTest():
    timerThread = threading.Thread(target=subtask)
    # timerThread.setDaemon(True) # 不能設(shè)置daemon=true,會(huì)只運(yùn)行一次就終止!
    # timerThread.daemon = True # 不能設(shè)置daemon=true,會(huì)只運(yùn)行一次就終止!
    timerThread.start()

運(yùn)行PeriodlTest()時(shí),如果不加daemon=true那一句,那么程序會(huì)無(wú)休止地運(yùn)行下去,即使ctrl+C也無(wú)法結(jié)束??梢砸坏┘觗aemon=true那一句,那么PeriodlTest()會(huì)只運(yùn)行一次subtask就終止。

請(qǐng)問(wèn)這個(gè)daemon應(yīng)該怎么解決呢?怎么才能讓我可以用ctrl+C或者其他的外部干擾結(jié)束它呢?謝謝了先!

回答
編輯回答
枕頭人

守護(hù)線程不能是唯一一個(gè)正在運(yùn)行的線程,必須依附于其他非守護(hù)線程才能持續(xù)運(yùn)行。

2018年8月27日 13:03