Python中可以通過使用threading
模塊的Thread
類來創建線程,但是線程對象無法直接返回值。如果想要獲取線程的返回值,可以使用以下兩種方法:
threading
模塊的Thread
類的join()
方法來等待線程的結束,并通過自定義的實例變量來保存線程的返回值。import threading
class MyThread(threading.Thread):
def __init__(self, *args, **kwargs):
super(MyThread, self).__init__(*args, **kwargs)
self.result = None
def run(self):
# 在run方法中執行線程的操作
# 將結果保存在self.result中
self.result = 42
# 創建線程并啟動
thread = MyThread()
thread.start()
# 等待線程結束,并獲取結果
thread.join()
result = thread.result
print(result)
concurrent.futures
模塊的ThreadPoolExecutor
類來創建線程池,并通過submit()
方法提交任務,通過返回的Future
對象的result()
方法獲取線程的返回值。import concurrent.futures
def my_task():
# 在任務中執行線程的操作
return 42
# 創建線程池
executor = concurrent.futures.ThreadPoolExecutor()
# 提交任務并獲取返回的Future對象
future = executor.submit(my_task)
# 獲取線程的返回值
result = future.result()
print(result)
這兩種方法都可以獲取到線程的返回值,可以根據具體的需求來選擇使用。