方式一:
import concurrent.futures
import time
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
futures = []
while True:
future = executor.submit(要执行的函数, 函数的参数)
futures.append(future)
# 检查并移除已完成的任务
for f in futures:
if f.done():
result = f.result()
# print(result)
futures.remove(f)
方式二:
import concurrent.futures
import time
def worker(n):
print(f"Worker {n} is starting")
time.sleep(2)
print(f"Worker {n} is finished")
return f"Result from worker {n}"
if __name__ == "__main__":
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
# 提交任务到线程池
futures = [executor.submit(worker, i) for i in range(10)]
# 等待所有任务完成并获取结果
for future in concurrent.futures.as_completed(futures):
print(future.result())