我在读取多处理队列时遇到问题读取队列的函数正在从另一个模块调用。在
下面的类包含启动运行function_to_get_data的线程的函数。类驻留在它自己的文件中,我将调用它一个.py. function_to_get_data在另一个文件中,二.py并且是一个无限循环,它将数据放入队列中(下面的代码片段)。它还包含读取队列的函数。队列q在开始时是全局定义的。在import multiprocessing
from two import function_to_get_data
q = multiprocessing.Queue()
class Poller:
def startPoller(self):
pollerThread = multiprocessing.Process(target=module_to_get_data,args=(q,))
pollerThread.start()
def getPoller(self):
if q.empty():
print "queue is empty"
else:
pollResQueue = q.get()
q.put(pollResQueue)
return pollResQueue
if __name__ == "__main__":
startpoll = Poller()
startpoll.startPoller()
以下是function_to_get_data中的片段:
^{pr2}$
我还有一个模块,三.py,它需要队列中的数据,并通过从初始类调用函数来请求它:from one import Poller
externalPoller = Poller()
data_this_module_needs = externalPoller.getPoller()
问题是队列总是空的。在
我应该加上三.py也称为线程一个.py通过网页上的帖子:def POST(data):
data = web.input()
if data == 'Start':
thread_two = multiprocessing.Process(target= function_in_three_py, args=(q,))
thread_two.start()
如果我使用python命令行并输入两个Poller函数并调用它们,我就可以从队列中获取数据。在