亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

python 繼承線程的類 不能通過標志位結束線程

瀏覽:115日期:2022-06-30 15:52:11

問題描述

在測試生產消費者模型的時候遇到這樣一個問題,在繼承線程后 加了個標志位 mark

class Consumer(threading.Thread): def __init__(self, queue):threading.Thread.__init__(self)self._queue = queueself.mark = True def run(self):while self.mark: msg = self._queue.get() if isinstance(msg, str) and msg == ’quit’:break print('I’m a thread, and I received %s!!' % msg)print(’Bye byes!’)

def producer(): q = queue.Queue() worker = Consumer(q) worker.start() # 開啟消費者線程 start_time = time.time() while time.time() - start_time < 5:q.put(’something at %s’ % time.time())time.sleep(1) worker.mark = Flese worker.join()

我原先指望 通過這個標志位來實現線程的結束控制,但實際效果是程序卡死在worker.join()完全沒有退出。

請教下,這是什么原因?

問題解答

回答1:

class Consumer(threading.Thread): def __init__(self, queue):threading.Thread.__init__(self)self._queue = queueself.mark = True def run(self):while self.mark: try:msg = self._queue.get(block=False) # 非阻塞print('I’m a thread, and I received %s!!' % msg) except:pass print(’self.mark’,self.mark)print(’Bye byes!’)def producer(): q = queue.Queue() worker = Consumer(q) worker.start() # 開啟消費者線程 start_time = time.time() while time.time() - start_time < 5:q.put(’something at %s’ % time.time())time.sleep(1) worker.mark = False worker.join()

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 8050网午夜一级毛片免费不卡 | 日韩亚洲欧美综合一区二区三区 | 日韩高清在线播放不卡 | 91精品91| 老头巨大粗长xxxxx | 91精品91久久久久久 | 国产真人毛片一级视频 | 欧美精品xxxⅹ欧美 欧美精品不卡 | 农村寡妇一级毛片免费看视频 | 精品国产免费人成在线观看 | 俺来也俺来也天天夜夜视频 | 国产欧美日韩视频在线观看 | 久久综合99re88久久爱 | 国产精品亚洲片在线va | 亚洲精品久久久成人 | 日本在线观看不卡 | 男女男精品视频网站在线观看 | 国产欧美日韩视频在线观看 | 外国成人网在线观看免费视频 | 亚洲男人的天堂在线 | 她也啪在线视频精品网站 | 亚洲在线久久 | 欧美成人免费全部色播 | 成人在线综合网 | hdxxx色视频| 午夜成人在线视频 | 久久免费视频观看 | 亚洲国产人成中文幕一级二级 | 久久99精品综合国产首页 | 久久精品视频网 | 狠狠一区| 亚洲综合无码一区二区 | 老湿菠萝蜜在线看 | 婷婷久久久五月综合色 | 一级黑人 | 国产一区二区免费播放 | 国产精品久久精品视 | 99久久精品免费观看国产 | 国产亚洲精品国产 | 亚洲欧美自拍视频 | 一区二区三区在线看 |