我在一个列表中有一个 multiprocessing.Process 对象的集合,它们都使用我将称为“进程安全队列”的相同实例以进程安全(线程安全但与进程)的方式进行通信负责管理线程的父进程。
当子进程去往队列中放入东西时,它调用 ProcessSafeQueue().enqueue(),它首先获取一个 multiprocessing.Manager > RLock,然后写入队列,最后释放锁。
在这种情况下,它是子进程的 pid。这是错误的回溯。
Traceback (most recent call last):
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 87, in send_data
q.enqueue(os.getpid())
File /usr/lib/python2.5/site-packages/my_project/some_module.py, line 33, in enqueue
self.lock.acquire()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 979, in acquire
return self._callMethod(\'acquire\', (blocking,))
File /usr/lib/python2.5/site-packages/processing/managers.py, line 740, in _callMethod
self._connect()
File /usr/lib/python2.5/site-packages/processing/managers.py, line 727, in _connect
connection = Client(self._token.address, authkey=self._authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 187, in Client
answerChallenge(c, authkey)
File /usr/lib/python2.5/site-packages/processing/connection.py, line 425, in answerChallenge
message = connection.recvBytes()
这是实际的错误:
IOError:[Errno 11] 资源暂时不可用
我想知道是否有人可以帮助我理解为什么在应用程序成功运行约 7 小时后我可能会收到此错误。