python中單執行緒重複利用
使用佇列重複利用單執行緒
# 重複利用的執行緒. 執行緒一般跑完就結束了.
# 即建立一個執行緒, 給一個任務, 執行完後在等待接受下一個任務並執行, 以達到重複利用的目的.
"""
執行緒重複利用.
物件 t 為一個執行緒, 執行兩次不同的func 函式任務.
"""
import threading
import queue
class Myth(threading.Thread):
def __init__(self):
super().__init__()
self.daemon = True # 設定守護模式, 是為了讓程式隨著主程式程式碼執行完而結束, 不然會阻塞.
self.queue = queue.Queue() # 建立佇列.
self.start() # 在建立物件時, 就啟動這個run(), 如果佇列中沒有東西, 那麼就在get處阻塞.
def run(self): # 特定方法名.
while True:
func = self.queue.get() # 獲得物件.
func() # call function.
self.queue.task_done() # get 然後 task_done
def apply_async(self, func): # 特定方法名
self.queue.put(func) # put 函式物件.
def join(self):
self.queue.join() # waiting mission done, 不然就阻塞.
def func():
print("[+] I'm first mission.")
def func2():
print("[+] I'm second mission.")
if __name__ == '__main__':
t = Myth()
t.apply_async(func) # thread mission 1
t.apply_async(func2) # thread mission 2
t.join() # call self.queue.join().
相關文章
- android執行緒start()、interrupt()之重複使用Android執行緒
- python多執行緒中:如何關閉執行緒?Python執行緒
- python中的執行緒Python執行緒
- 執行緒1-單執行緒執行緒
- 簡單的多執行緒複製檔案執行緒
- python中的執行緒池Python執行緒
- Python 中執行緒和程式Python執行緒
- 理解 python 中多執行緒Python執行緒
- 理解 Python 中的執行緒Python執行緒
- 理解Python中的執行緒Python執行緒
- Java利用執行緒工廠監控執行緒池Java執行緒
- 多執行緒複習執行緒
- Java執行緒:執行緒中斷Java執行緒
- python中5種執行緒鎖Python執行緒
- redis 單執行緒Redis執行緒
- 【Java】多執行緒複習Java執行緒
- python多執行緒爬蟲與單執行緒爬蟲效率效率對比Python執行緒爬蟲
- 伺服器模型——從單執行緒阻塞到多執行緒非阻塞(中)伺服器模型執行緒
- Python簡單實現多執行緒例子Python執行緒
- 什麼是Python執行緒?Python執行緒如何建立?Python執行緒
- Java 執行緒池中的執行緒複用是如何實現的?Java執行緒
- Python中的多工:多執行緒Python執行緒
- Java執行緒中斷與終止執行緒執行Java執行緒
- 利用excel去除txt文字中重複項Excel
- 在單獨執行緒中執行物件成員函式 (轉)執行緒物件函式
- 瀏覽器多執行緒和js單執行緒瀏覽器執行緒JS
- PyQt應用程式中的多執行緒:使用Qt還是Python執行緒?QT執行緒Python
- python基礎執行緒-管理併發執行緒Python執行緒
- 執行緒池相關複習執行緒
- Mysql複製執行緒狀態MySql執行緒
- JavaScript單執行緒概念JavaScript執行緒
- Redis-單執行緒Redis執行緒
- Redis--單執行緒Redis執行緒
- Casperjs迴圈執行(重複執行不退出)JS
- “多執行緒”重點概念整理執行緒
- JAVA重點類 多執行緒Java執行緒
- 10、JUC、執行緒池(重點)執行緒
- python之多執行緒Python執行緒