亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:81日期: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 編程
相關文章:
主站蜘蛛池模板: 国产欧美日韩在线人成aaaa | 在线日韩亚洲 | 国产欧美国产精品第一区 | 国产精品中文 | 91精品视频在线观看免费 | 精品在线免费观看 | 青青久在线精品视频 | 国产精品jvid在线观看 | 91福利国产在线观看一区二区 | 国产成人精品综合久久久软件 | 亚洲天堂激情 | 成年女人天堂香蕉网视频 | 国产一级做a爰片久久毛片 国产一级做a爰片久久毛片99 | 亚洲国产福利精品一区二区 | 国产成年网站v片在线观看 国产成版人视频网站免费下 | 一级免费片 | 国产欧美日韩精品a在线观看 | vr专区日韩精品中文字幕 | 亚洲精品午夜级久久久久 | 中文字幕一区日韩在线视频 | 九九精品久久久久久久久 | 日韩欧美一级毛片精品6 | 日本特黄绿像大片免费看 | 国产成人三级视频在线观看播放 | 欧美成人免费毛片 | 色日韩| 韩国黄色网页 | 99久久精品国产麻豆 | 国产精品夜间视频香蕉 | 在线毛片一区二区不卡视频 | 成人午夜在线视频 | 手机在线黄色网址 | 成人18免费入口 | 理论片我不卡在线观看 | 亚洲第一黄色 | 成年人免费网址 | 国产不卡视频在线观看 | 91久久精品午夜一区二区 | 啪视频在线观看 | 萌白酱粉嫩福利视频在线观看 | 国产美女无遮挡免费视频 |