新聞中心

金鳳網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
這段時間,小編在工作上使用最多的就是多線程,而在這個過程中,難免會需要獲取多線程操作完的返回值進行其他操作。經(jīng)過一番查閱和操作,小編發(fā)現(xiàn)可以通過在threading、Thread的基礎(chǔ)上進行封裝來獲取返回值,小編總結(jié)了這兩種方法,快來看看吧。
第一種:在threading中使用全球變量
在threading中,并沒有實現(xiàn)返回值的方法,所以我們可以利用全局變量來實現(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類,自定義一個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)
以上就是小編總結(jié)的獲取多線程返回值的方法,大家可以兩種方法都嘗試下,然后選擇自己合適方便的方法去操作哦~
文章題目:創(chuàng)新互聯(lián)Python教程:如何使用Python獲取多線程返回值?
路徑分享:http://m.5511xx.com/article/dhdgioj.html


咨詢
建站咨詢
