Python队列 - 为什么它还在增长?

时间:2016-03-18 06:07:54

标签: python multithreading queue

我有一台服务器获取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.get()将从那里删除数据,对于那里的每一位数据,它应该产生一个线程来删除它。

任何人都可以了解我如何在该队列中收集越来越多的数据?

它是否比1更快进入:能够循环并检查它吗?

1 个答案:

答案 0 :(得分:1)

我认为TCP数据接收器的速度比数据处理器快。您可以添加一个计数器来计算输出的数据量和数量,以便了解队列是否在不断增长。