我尝试像为“queue.Queue”所做的那样创建“multiprocessing.Queue”的继承子类,但出现错误:
Traceback (most recent call last):
File "f:\d\multiprocessing-samples\test.py", line 4, in <module>
class DataMultiProcQueue(multiprocessing.Queue):
TypeError: method expected 2 arguments, got 3
这是重现此错误的代码,我测试了 python3.10,11,12 存在该错误
import multiprocessing
class DataMultiProcQueue(multiprocessing.Queue):
def __init__(self):
super().__init__(self)
if __name__ == "__main__":
my_queue = DataMultiProcQueue()
my_queue.put(1)
print(my_queue.get())
我错过了什么吗?
谢谢,
口香糖
multiprocessing.Queue
实际上是 Queue
类实例的 multiprocess.context.DefaultContext
工厂方法。
真正的
Queue
课程是multiprocessing.queues.Queue
。