我有一個全球性的列表,其中的項目不斷增加(從網絡客戶端):不斷檢查清單,並做一些事情,如果列表中有項目
mylist = []
def additem(uuid,work):
mylist.append(uuid,work)
而且一個函數,它應該檢查該列表,如果有物品繼續他們:
def proceeditems():
while True:
itemdone = []
if len(mylist) > 0:
for item in mylist:
try:
#This can go wrong and than need to be done again
result = gevent.spawn(somework(item))
#result returns the uuid
itemdone.append(result.value)
except:
pass
for item in itemdone:
mylist[:] = [value for value in mylist if value[0]!=item]
所以我希望你現在是我嘗試做得到一個想法,但我覺得無限循環似乎是不正確的解決方案。
也許[隊列](http://docs.python.org/2/library/queue.html)在這裏更好? –
你想要一個無限循環...但你想要一個無盡的循環,等待某個東西,而不是儘可能快地旋轉。你可以使用'條件'......但如果你做對了,你會重現'隊列'確實是什麼,如果你沒有把握好(你不會這樣做,前30次左右),你會有一些無用的和痛苦的調試。 – abarnert