#!/usr/bin/env python#whaaaaa!?from multiprocessing import Queueclass BufferQueue(Queue): '''A thread/process safe queue for append/popleft operations with the import buffer.''' def __init__(self,**kwargs): super(BufferQueue,self).__init__(**kwargs) def consume(self,lim): '''Consume up to but no more than lim elements and return them in a new List,cleaning up the buffer. @params lim -- the maximum (limit) to consume from the List. If less items exist in the List then that's fine too. ''' lim = len(queue) if len(queue) < lim else lim return [self.popleft() for i in range(lim)]
测试这个(我将其拆分,以便我不会拉其他任何东西)
| => ./tests/wtf_queue.py Traceback (most recent call last): file "./tests/wtf_queue.py",line 10,in <module> class BufferQueue(Queue):TypeError: method expected 2 arguments,got 3
编辑/更新:
解决方法 multiprocessing.Queue是一个创建队列的方法,因此您应该将其用作函数my_queue = Queue().>>> from multiprocessing import Queue>>> type(Queue)<class 'method'>
正如您所看到的,不是“类型”,您将使用它来进行子类化.
如果要实现自己的队列,可以查看queue.Queue
编辑:
如果要从多处理子类化队列,请改用multiprocessing.queues.Queue,这是multiprocessing.Queue()返回的对象的类型.
总结以上是内存溢出为你收集整理的python-3.x – 多处理队列子类问题全部内容,希望文章能够帮你解决python-3.x – 多处理队列子类问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)