python 使用 threading.thread(target="")指明函數入口,如果函數有返回值,如何得到這個返回值?
01-03
首先, 自帶的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()
把return 變成queue 用queue.put接收值 一般線程里都是循環的吧 你return就跳出了 這個線程就結束了
全局變數或者queue
用Queue更安全
涉及到線程數據交換的問題了,最近在看這些,通過全局變數交換,注意線程要有鎖,或者用Queue
推薦閱讀:
※Python 3.3 中 input() 返回值類型是什麼?
※#Python3# Beautifulsoup Mac安裝解決辦法?[自問自答已解決]
※linux上現在裝著python2.6,我想把python替換為python3.4,我應該怎麼做?
※推薦幾本Python3相關書籍?最好分一下基礎、進階、高級
※在Python中下面這句話怎麼理解?