python 使用 threading.thread(target="")指明函數入口,如果函數有返回值,如何得到這個返回值?


首先, 自帶的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中下面這句話怎麼理解?

TAG:Python | Python3x | 多線程 | 多線程編程 | Python開發 |