使用 callable 和 future 创建线程
时间: 2023-06-05 08:48:00 浏览: 152
Java使用Callable和Future创建线程操作示例
使用 callable 和 future 可以创建线程,具体步骤如下:
1. 定义一个 callable 对象,即一个可以被调用的函数或方法。
2. 创建一个 Future 对象,用于保存线程的执行结果。
3. 创建一个线程池对象,用于管理线程的执行。
4. 将 callable 对象和 Future 对象作为参数,提交给线程池对象,创建一个新的线程。
5. 等待线程执行完成,并获取执行结果。
6. 关闭线程池对象,释放资源。
示例代码如下:
```python
import concurrent.futures
# 定义一个可调用对象
def my_func(x):
return x * x
# 创建一个 Future 对象
my_future = concurrent.futures.Future()
# 创建一个线程池对象
with concurrent.futures.ThreadPoolExecutor() as executor:
# 提交任务到线程池中,并返回一个 Future 对象
future = executor.submit(my_func, 10)
# 等待任务执行完成,并获取执行结果
result = future.result()
print(result)
# 关闭线程池对象
executor.shutdown()
```
以上代码中,我们定义了一个可调用对象 `my_func`,用于计算一个数的平方。然后,我们创建了一个 Future 对象 `my_future`,用于保存线程的执行结果。接着,我们创建了一个线程池对象 `executor`,并将 `my_func` 和 `my_future` 作为参数,提交给线程池对象,创建了一个新的线程。最后,我们等待线程执行完成,并获取执行结果。最后,我们关闭线程池对象,释放资源。
阅读全文