我有一个服务器接收TCP数据并生成线程来解析和处理数据。我注意到,如果它开始获得太多的连接,就会出现问题,并开始停止运行,因此在四处搜索之后,我发现我的队列稳定地获得越来越多的数据,尽管我一直在使用q.get()。你知道吗
队列清空线程的片段:
def QDUmp():
while 1:
if not q.empty():
data= str(q.get())
ParseThread = Thread(target = ParseFunction(data))
ParseThread.start()
CheckQ = Thread(target = QDUmp)
CheckQ.start()
TCP不断地添加数据,就像这样的标准:
q = Queue.Queue()
For eachdata from Socket:
q.put(eachdata)
所以。。。数据进进出出,但输出速度不够快。你知道吗
它运行的时间越长,q中的数据就越多。据我所知,q.get()可能会从那里删除数据,对于那里的每一位数据,它都应该生成一个线程来删除它。你知道吗
有人能告诉我,我是如何在队列中处理越来越多的数据的吗?你知道吗
它是不是比1:能循环检查的速度快?你知道吗
我相信TCP数据接收器比你的数据处理器快。您可以添加一个计数器来计算输入和输出的数据量,这样就可以知道队列是否在持续增长。你知道吗
相关问题 更多 >
编程相关推荐