這篇文章主要介紹了使用python多線程并返回值的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主營封丘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),封丘h5微信平臺小程序開發(fā)搭建,封丘網(wǎng)站營銷推廣歡迎封丘等地區(qū)企業(yè)咨詢
Python 從多線程中返回值,有多種方法:
1、常見的有寫一個自己的多線程類,寫一個方法返回。
2、可以設(shè)置一個全局的隊列返回值。
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 實例并沒有返回結(jié)果的方法. 需要自己實現(xiàn),自己定義一個類:
class CustomTask: def __init__(self): self._result = None def run(self, *args, **kwargs): # 你的代碼, 你用來進行多線程 result = ... self._result = result def get_result(self): return self._result 這里自己實現(xiàn)了 `get_result` 方法。 使用 import threading ct = CustomTask() t = threading.Thread(target=ct.run, args=(...)) t.start() # 結(jié)束之后 result = ct.get_result()
感謝你能夠認真閱讀完這篇文章,希望小編分享使用python多線程并返回值的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!