Python的concurrent.futures
庫提供了ThreadPoolExecutor
類,它是一個高效的線程池實現
import concurrent.futures
def my_function(x):
# 在這里執行你的任務
return x * x
ThreadPoolExecutor
實例,并指定線程池中的最大線程數。然后,使用submit()
方法將任務添加到線程池中:with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
# 提交任務并將Future對象存儲在列表中
futures = [executor.submit(my_function, i) for i in range(10)]
as_completed()
方法迭代已完成的任務,并獲取結果:for future in concurrent.futures.as_completed(futures):
result = future.result()
print(result)
下面是一個完整的示例:
import concurrent.futures
def my_function(x):
return x * x
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
futures = [executor.submit(my_function, i) for i in range(10)]
for future in concurrent.futures.as_completed(futures):
result = future.result()
print(result)
這個示例將創建一個包含5個線程的線程池,并將10個任務提交給線程池。每個任務都會計算一個數字的平方。當任務完成時,它們的結果將按照完成順序打印出來。