मेरे पास एक थ्रेड है जो पंक्तियों को self.output में जोड़ता है और एक लूप जो चलता है जब तक self.done सत्य नहीं होता है (या अधिकतम निष्पादन समय तक पहुंच जाता है)।पायथन - थ्रेडिंग और एक जबकि ट्रू लूप
क्या थोड़ी देर के लूप का उपयोग करने के अलावा ऐसा करने का एक और अधिक प्रभावी तरीका है जो लगातार यह देखने के लिए जांच करता है कि यह किया गया है या नहीं। जबकि पाश के चलते समय सीपीयू 100% करने के लिए स्पाइक का कारण बनता है ..
time.clock()
while True:
if len(self.output):
yield self.output.pop(0)
elif self.done or 15 < time.clock():
if 15 < time.clock():
yield "Maximum Execution Time Exceeded %s seconds" % time.clock()
break
ओओयूओ, अब हम बात कर रहे हैं। : डी – Ian
क्या कोई समय सीमा के बिना एक Queue.get() पर थ्रेड अवरुद्ध करने का कोई तरीका है कि निर्माता धागे में कुछ भी डाल रहा है ताकि यह साफ से बाहर निकल सके? – millimoose
@ एसआईआई: जब आप इसे बनाते हैं तो आप थ्रेड डिमनिक को चिह्नित कर सकते हैं। इसका मतलब है कि जब आपका प्रोग्राम निकलता है तो थ्रेड बाहर निकल जाएगा। –