在Python中,可以使用concurrent.futures
模塊中的ThreadPoolExecutor
來創建線程池,并利用其提供的submit
方法來提交任務。如果需要在任務完成后執行回調函數,可以使用add_done_callback
方法來指定回調函數。
下面是一個簡單的示例代碼:
from concurrent.futures import ThreadPoolExecutor
# 定義一個回調函數
def callback(result):
print("任務完成,結果為:", result)
# 定義一個任務函數
def task(x, y):
return x + y
# 創建線程池
with ThreadPoolExecutor() as executor:
# 提交任務,并指定回調函數
future = executor.submit(task, 2, 3)
future.add_done_callback(callback)
在上述示例中,我們首先定義了一個回調函數callback
和一個任務函數task
,然后創建了一個線程池。通過executor.submit
方法提交了一個任務,并通過future.add_done_callback
方法指定了回調函數。當任務完成后,回調函數將會被執行,并傳入任務的返回結果作為參數。
需要注意的是,回調函數將在線程池中的某個線程中執行,因此在回調函數中應避免使用共享資源,或者需要使用鎖來保護共享資源的訪問。