示范下基于 concurrent.futures模块 的多线程编程
时间: 2023-05-20 10:02:55 浏览: 98
当使用 concurrent.futures 模块进行多线程编程时,需要先创建一个 ThreadPoolExecutor 对象,然后使用 submit() 方法提交任务,最后使用 result() 方法获取任务的结果。下面是一个示例代码:
```python
import concurrent.futures
def worker(num):
print(f"Worker {num} starting")
result = num ** 2
print(f"Worker {num} result: {result}")
return result
if __name__ == "__main__":
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
futures = [executor.submit(worker, i) for i in range(3)]
results = [f.result() for f in futures]
print(f"Results: {results}")
```
在这个示例中,我们创建了一个包含 3 个线程的线程池,然后提交了 3 个任务给线程池处理。每个任务都是计算一个数的平方,并返回结果。最后,我们使用 result() 方法获取每个任务的结果,并打印出来。
注意,使用 concurrent.futures 模块进行多线程编程时,需要注意线程安全问题,避免出现竞态条件等问题。
阅读全文