您好,登錄后才能下訂單哦!
這篇文章主要介紹了使用python多線程并返回值的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
Python 從多線程中返回值,有多種方法:
1、常見的有寫一個自己的多線程類,寫一個方法返回。
2、可以設置一個全局的隊列返回值。
3、也可以用multiprocessing.pool.ThreadPool 。
下面寫一個類從線程中返回值
# coding:utf-8 import time from threading import Thread def foo(number): time.sleep(20) return number class MyThread(Thread): def __init__(self, number): Thread.__init__(self) self.number = number def run(self): self.result = foo(self.number) def get_result(self): return self.result thd1 = MyThread(3) thd2 = MyThread(5) thd1.start() thd2.start() thd1.join() thd2.join() print thd1.get_result() print thd2.get_result()
另外,自帶的Thread 實例并沒有返回結果的方法. 需要自己實現,自己定義一個類:
class CustomTask: def __init__(self): self._result = None def run(self, *args, **kwargs): # 你的代碼, 你用來進行多線程 result = ... self._result = result def get_result(self): return self._result 這里自己實現了 `get_result` 方法。 使用 import threading ct = CustomTask() t = threading.Thread(target=ct.run, args=(...)) t.start() # 結束之后 result = ct.get_result()
感謝你能夠認真閱讀完這篇文章,希望小編分享使用python多線程并返回值的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。