python队列只能一个个读取吗_Python多处理队列:从另一个modu读取队列

博客讨论了在Python中使用多进程和队列进行通信时遇到的问题。具体表现为从一个模块启动的线程无法从全局队列中获取到另一个模块放入的数据。问题在于模块之间的同步和队列的正确使用。解决方案可能涉及确保正确地启动和同步线程,以及在适当的地方调用队列操作。
摘要由CSDN通过智能技术生成

我在读取多处理队列时遇到问题读取队列的函数正在从另一个模块调用。在

下面的类包含启动运行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函数并调用它们,我就可以从队列中获取数据。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值