MST

星途 面试题库

面试题:Python多进程应用之中等难度:进程间通信实现

在Python的多进程编程中,要求使用`multiprocessing`模块,实现两个进程间通过队列(Queue)进行数据传递。假设一个进程生成1到100的整数,另一个进程接收这些整数并计算它们的平方和,最后输出结果。请写出完整代码。
20.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import multiprocessing


def producer(queue):
    for i in range(1, 101):
        queue.put(i)


def consumer(queue):
    total = 0
    while True:
        data = queue.get()
        if data is None:
            break
        total += data ** 2
    print(f"平方和为: {total}")


if __name__ == '__main__':
    q = multiprocessing.Queue()
    p1 = multiprocessing.Process(target=producer, args=(q,))
    p2 = multiprocessing.Process(target=consumer, args=(q,))
    p1.start()
    p1.join()
    q.put(None)
    p2.start()
    p2.join()