from multiprocessing import Process, Queue
def square_numbers(numbers, queue):
# 计算平方并将结果放入队列
for n in numbers:
queue.put(n * n)
if __name__ == "__main__":
numbers = [1, 2, 3, 4, 5]
# 创建一个队列用于进程间通信
q = Queue()
# 创建子进程并传递参数
p = Process(target=square_numbers, args=(numbers, q))
# 启动子进程
p.start()
# 等待子进程完成
p.join()
# 从队列中获取结果
result = []
while not q.empty():
result.append(q.get())
print("Result:", result)
导入模块:multiprocessing 模块提供了创建和管理多进程的功能。我们使用 Process 类来创建新进程,并使用 Queue 来在进程之间传递数据。
定义函数:square_numbers 函数接收一个数字列表和一个队列对象,计算每个数字的平方,并将结果放入队列中。
主程序:
numbers。Queue 对象 q,用于进程间通信。Process 创建一个新的子进程,目标函数为 square_numbers,并传递参数。start() 方法启动子进程。join() 方法等待子进程完成。这个示例展示了如何使用 Python 的 multiprocessing 模块来创建多个进程,并通过队列实现进程间的通信。
上一篇:python counter
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站