से हटा दें मैं एक धागा जो थ्रेड फैली है। कोड इस तरह थोड़ा दिखता है;अजगर - एक धागे पर जाँच/सूची
class MyThread(Thread):
def run(self):
# Do stuff
my_threads = []
while has_jobs() and len(my_threads) < 5:
new_thread = MyThread(next_job_details())
new_thread.run()
my_threads.append(new_thread)
for my_thread in my_threads
my_thread.join()
# Do stuff
तो मेरी छद्म कोड में यहाँ मैं अगर कोई जॉब (एक डाटाबेस आदि की तरह) है देखने के लिए जाँच करें और अगर वहाँ कुछ नौकरियों है, और अगर वहाँ कम से कम 5 चल सूत्र, नया सूत्र बना सकते हैं।
तो यहां से, मैं फिर अपने धागे की जांच करता हूं और यह वह जगह है जहां मैं अटक जाता हूं, मैं .join() का उपयोग कर सकता हूं लेकिन मेरी समझ यह है कि - यह तब तक समाप्त हो जाता है जब तक यह समाप्त नहीं हो जाता है, अगर यह पहले धागा की जांच करता है कार्य प्रगति पर है, यह तो इंतजार कर रहा है जब तक यह किया है - भले ही अन्य थ्रेड समाप्त कर लें ....
तो वहाँ अगर एक धागा किया जाता है, तो इसे हटाने यदि ऐसा है तो जाँच करने के लिए एक तरीका है?
जैसे
for my_thread in my_threads:
if my_thread.done():
# process results
del (my_threads[my_thread]) ?? will that work...
धन्यवाद, लेकिन है कि एक परिणाम का क्या मतलब है खो दिया जा सकता है? यदि कोई धागा अब जीवित नहीं है तो मुझे परिणाम प्राप्त करने की आवश्यकता है। – Wizzard
यह सच है। मैंने इसे अपने खाते में लेने के लिए संशोधित किया है। – Arlaharen
पायथन 2.6+ – trim