采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
多进程里面的这个 Queue 不能用于进程池间的通信。
进程池有两种模式,一个是 multiprocessing 里面的,一个是 concurrent.futures 里面的 1.pool = multiprocessing.Pool(2)) 2.process_pool = ProcessPoolExecutor(2)
请问这个 Queue 是不能用于第一种模式,还是两种都不行?因为课程里面的例子只讲到第一种不行。
concurrent.futures 是基于threading和multiprocessing的进一步封装,用起来简单,
这里的queue是用于多进程的,所以要看你的ProcessPoolExecutor是基于进程的还是线程的
ProcessPoolExecutor 不就是进程池吗,肯定是基于进程的
https://blog.csdn.net/qq_34336037/article/details/102621128 你可以看看这个 只要是进程池就可以使用上面的queue
multiprocessing.Queue( ),只能用于手动创建的进程的通信,如果是进程池创建的进程通信,就要用Manager( ).Queue( ),这样理解对不对
登录后可查看更多问答,登录/注册
socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO
1.2k 31
1.1k 24
1.1k 16
1.4k 10
1.1k 9