जो मैं यहां करने का प्रयास कर रहा हूं वह प्रोग्राम में सभी चल रहे थ्रेड से बाहर निकलने के लिए कीबोर्ड इंटरप्ट का उपयोग करता है।कीबोर्ड के साथ सभी थ्रेड्स को बंद करना
for i in taskDictionary:
try:
sleep(60)
thread = Thread(target = mainModule.executeThread)
thread.start()
except KeyboardInterrupt:
thread.__stop()
कार्यक्रम में ही कहीं अधिक जटिल है विभिन्न चर कि धागे को प्रभावित और यहां तक कि एक अनुक्रमिक में लांच करने के लिए विकल्प होने के टन के लिए लेखांकन: यह जहां धागा बनाया जाता है मेरी कोड का एक नीचे मुकाबले संस्करण है मोड, जहां कार्यों को थ्रेड नहीं किया जाता है, लेकिन इसके बजाय एक-एक-एक लॉन्च किया जाता है, इसलिए इस छोटे बदलाव के साथ कुछ समस्याएं हो सकती हैं जिन्हें मैंने अभी स्वीकार किया है। मैंने इसे ऐसे तरीकों से किया है जो 50/50 परिणाम उत्पन्न करते हैं। इंटरप्ट काम करेंगे लेकिन थ्रेड कभी भी बाहर निकल नहीं पाएंगे। कभी-कभी वे आगे बढ़ते रहते थे लेकिन भविष्य के धागे के निष्पादन को रोकते थे, कुछ बार वे बाधा के बारे में एक बड़ी गलती से बाहर निकलते थे, दूसरी बार इंटरप्ट कुछ भी नहीं करेंगे। पिछली बार जब मैंने इसे चलाया तो कार्यक्रम ने किसी भी भविष्य के धागे को निष्पादित करने से रोक दिया लेकिन मौजूदा धागे को नहीं रोका। क्या मॉड्यूल में जाने के बिना धागे से बाहर निकलने का कोई तरीका है थ्रेड वास्तव में निष्पादित हो रहा है?
धागे के सहयोग के साथ, आप इसे किसी भी तरह से मार सकते हैं। धागे के सहयोग के बिना, ऐसा करने का कोई सुरक्षित तरीका नहीं है और सभी सड़कों में दर्द होता है। –
शानदार उत्तर! बिल्कुल वही नहीं जो मैं खोज रहा था लेकिन इतना व्यापक था कि मैं जिस तर्क की आवश्यकता थी उसमें तर्क को अनुकूलित करने में सक्षम था! उसके लिए धन्यवाद! – Joe
मैं थ्रेड का उपयोग कर रहा हूं क्योंकि मैं ट्रू लूप के दौरान अनंत नहीं चाहता हूं। यह आपके सभी सीपीयू के समय को बर्बाद कर देता है ... काफी सचमुच। मैंने ऐसा कुछ किया है और नींद के बिना यह एक समय में और एक छोटी सी नींद के साथ **% ** के लिए सीपीयू% 100% तक क्रैंक करता है, यह केवल थोड़ी मदद करता है। क्या ** ** बिना कुछ समय के यह करने का कोई तरीका है? – dylnmc