मैं अपने आवेदन में थ्रेडिंग (सजावटी का उपयोग करने के साथ) को लागू करने की कोशिश कर रहा हूं, लेकिन ताले और प्रबंधन धागे के बारे में कुछ चीजें समझ नहीं पा रहा हूं।सजावट के साथ थ्रेड
import threading
def run_in_thread(fn):
def run(*k, **kw):
t = threading.Thread(target=fn, args=k, kwargs=kw)
t.start()
return run
class A:
@run_in_thread
def method1(self):
for x in range(10000):
print x
@run_in_thread
def method2(self):
for y in list('wlkefjwfejwiefwhfwfkjshkjadgfjhkewgfjwjefjwe'):
print y
def stop_thread(self):
pass
c = A()
c.method1()
c.method2()
के रूप में मैं समझता हूँ, Method1 और Method2 सिंक्रनाइज़ नहीं कर रहे हैं, लेकिन उस सामान का समन्वयन करने ताले की मदद से लागू करने। मैं अपने सजावटी-समारोह में ताले कैसे जोड़ सकता हूं?
सजावटी का उपयोग करके लंबे धागे को रोकने के लिए मुझे विधि का एहसास कैसे हो सकता है?
आप दो धागे के बीच सिंक्रनाइज़ करना चाहते हैं? – awatts
क्या मैंने कुछ गलत कहा होगा। मैं कुछ मामलों में (हमेशा नहीं) एक थ्रेड के बाद दूसरा थ्रेड चलाने की संभावना नहीं चाहता, समानांतर नहीं। –
निश्चित रूप से ऐसा करने का सरल तरीका उस मामले में थ्रेड में कोड नहीं चलाया जाना है। इस मामले में आपके पास दो समान विधियां हो सकती हैं, जो एक थ्रेड में कार्य करता है और जो नहीं करता है। वैकल्पिक रूप से पैरामीटर में पास करते समय कॉल करते हैं जो इंगित करता है कि कॉल को थ्रेड किया जाना है या नहीं। – awatts