2013-09-22 102 views
0

我正在爲某個庫(python)編寫服務器。用queqe一次啓動一個線程

我希望當服務器在他的循環中工作時,它將打開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有人有一個想法?

回答

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....." 
相關問題