在Python中,創建線程池的方法是使用concurrent.futures
模塊中的ThreadPoolExecutor
類。
下面是創建線程池的簡單示例:
import concurrent.futures
def task_function(arg):
# 執行任務的函數
print(f"Executing task with argument: {arg}")
# 創建線程池
with concurrent.futures.ThreadPoolExecutor() as executor:
# 提交任務給線程池
for i in range(5):
executor.submit(task_function, i)
在上面的示例中,使用with
語句創建了一個ThreadPoolExecutor
對象,該對象會自動管理線程池的生命周期。然后使用executor.submit()
方法向線程池提交任務。submit()
方法接受一個可調用對象(如函數)和其參數,并返回一個Future
對象,表示異步計算的結果。任務會被分配給線程池中的空閑線程進行執行。
可以指定線程池的大小,例如:
max_workers = 5
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
# ...
在這個例子中,線程池的大小被限制為5個。根據具體的需求和計算資源,可以設置不同的線程池大小。
需要注意的是,ThreadPoolExecutor
類是concurrent.futures
模塊提供的一個實現線程池的類。在Python 3.2及以上版本中,該模塊也提供了ProcessPoolExecutor
類,用于創建進程池。