這篇文章主要介紹了怎么使用Python獲取多線程返回值的,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
第一種:在threading中使用全球變量
在threading中,并沒(méi)有實(shí)現(xiàn)返回值的方法,所以我們可以利用全局變量來(lái)實(shí)現(xiàn)返回值的獲取。
from threading import Thread _sum = 0 def cal_sum(begin, end): # 聲明使用全局變量 global _sum for i in range(begin, end + 1): _sum += i if __name__ == '__main__': t1 = Thread(target=cal_sum, args=(1, 5)) t2 = Thread(target=cal_sum, args=(6, 10)) t1.start() t2.start() print(_sum)
第二種:重寫Thread類,自定義一個(gè)get_result()
from threading import Thread # _sum = 0 def cal_sum(begin, end): # global _sum _sum = 0 for i in range(begin, end + 1): _sum += i return _sum """重新定義帶返回值的線程類""" class MyThread(Thread): def __init__(self, func, args): super(MyThread, self).__init__() self.func = func self.args = args def run(self): self.result = self.func(*self.args) def get_result(self): try: return self.result except Exception: return None if __name__ == '__main__': t1 = MyThread(cal_sum, args=(1, 5)) t2 = MyThread(cal_sum, args=(6, 10)) t1.start() t2.start() t1.join() t2.join() res1 = t1.get_result() res2 = t2.get_result() print(res1 + res2)
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享怎么使用Python獲取多線程返回值的內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
本文標(biāo)題:怎么使用Python獲取多線程返回值的-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article46/dgdpeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、小程序開發(fā)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站改版、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容