使用队列一次启动一个线程

时间:2013-09-22 06:22:01

标签: python multithreading queue

我正在为某个库(python)编写服务器。

我希望当服务器在他的循环中工作时,它将打开1个线程来执行其他操作。

我用队列控制这个线程,直到队列中没有返回值,我不希望服务器打开另一个线程。

try:
    #we have a return in the queqe
    returnValue = threadQueue.get(False)
    startAnotherThread = True
except Empty:
    print "Waiting for return value from thread thread....."

如果队列中有一些返回值,则startAnotherThread将告诉某些if语句打开另一个线程。

我不知道为什么它没有工作mabye有人有想法?

1 个答案:

答案 0 :(得分:0)

解决:

在服务器循环之前

初始化:

# thread queue
threadQueue = Queue()

# thread numbering
threadNumber = 0

# thread start
threadCanStart = True

服务器循环内部:

if threadCanStart:
    myThread(threadNumber, threadQueue).start()
    threadNumber += 1
    threadCanStart = False

try:
    #we have a return in the quqe
    returnValue = threadQueue.get(False)
    print "Queue return: ", returnValue
    threadCanStart = True
except Empty:
    print "Waiting for thread....."