您正在尝试使用多任务创建python2.6(OSx )程序。 我想添加超过默认值32767个项目的Queue。
来自多进程导入队列
queue(2**15 ) # raises OSError
队列(32767 )工作正常,但更多的数字将失败,例如队列(32768 ),OSError:[Errno 22]参数将被禁用
这个问题有解决方法吗?
解决方法:
一种方法是使用自定义类包装multiprocessing.Queue。 它允许您对分配给包装的Queue对象的项目进行排队,并仅在有空间时将来自本地队列Python list对象]的内容提供给multiprocess
这可能是最简单的方法,因为它应该对代码的其馀部分产生最小的影响.自定义类应该像Queue一样,同时隐藏抽象背后的基础multiprocessing.Queue .
(一个方法可能是让生产者使用线程。 一个线程管理从线程队列到multiprocessing.Queue的调度以及实际提供给线程队列的其他线程。)。
标签: python,multiprocessing,queue,max-size
资料来源: https://codeday.me/bug/2019 09 27/1822356.html