fork join函数简单的例子
时间: 2024-05-10 12:16:21 浏览: 90
java8中forkjoin和optional框架使用
`fork`和`join`是多线程编程中的两个重要概念,用于实现并行计算。`fork`函数用于创建一个新的进程,而`join`函数用于等待该进程执行完毕。
下面是一个简单的例子,用于计算一个数组的和。我们可以将数组分成多个子数组,让不同的线程同时计算子数组的和,最后再将所有的子数组和相加得到最终结果。
```python
import threading
def sum_array(arr):
if len(arr) == 1:
return arr[0]
else:
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
# 创建两个线程分别计算左半部分和右半部分的和
left_thread = threading.Thread(target=sum_array, args=(left,))
right_thread = threading.Thread(target=sum_array, args=(right,))
left_thread.start()
right_thread.start()
# 等待两个线程执行完毕
left_thread.join()
right_thread.join()
# 返回左半部分和右半部分的和之和
return left_thread.result + right_thread.result
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = sum_array(arr)
print(result)
```
在上述代码中,我们使用递归的方法将数组不断分成左半部分和右半部分,直到只剩下一个数时返回该数。然后创建两个线程分别计算左半部分和右半部分的和,并等待两个线程执行完毕。最后返回左半部分和右半部分的和之和,即为数组的和。
阅读全文