windows - Python multiprocessing continuously spawns pythonw.exe processes without doing any actual work -
मुझे समझ में नहीं आता क्यों यह सरल कोड
# file: mp.py से बहुप्रोसेसिंग आयात प्रक्रिया आयात एसईएस डीईएफ़ फेन्क (एक्स): प्रिंट 'वर्क्स', एक्स + 2 sys.stdout.flush () पी = प्रक्रिया (लक्ष्य = फेंक, आर्ग्स = (2,)) पी। स्टार्ट () पी। ) P.terminate () प्रिंट 'किया' sys.stdout.flush ()
"pythonw.exe" प्रक्रियाओं को लगातार बनाता है और यह कुछ भी मुद्रित नहीं करता है, भले ही मैं इसे चलाने से कमांड लाइन:
python mp.py
मैं विंडोज 7 पर नवीनतम अजगर 2.6 दोनों 32 और 64 बिट्स चल रहा हूँ
< / Div>
आपको इसकी आवश्यकता है।
यह एक विंडोज विशिष्ट समस्या है विंडोज़ पर आपके मॉड्यूल को एक नया पायथन इंटरप्रिटर में आयात किया जाना चाहिए ताकि यह आपके लक्ष्य कोड को एक्सेस कर सके। यदि आप इस नए इंटरप्रेटर को स्टार्ट अप कोड चलाने से रोकते हैं तो यह एक और बच्चे को पैदा करेगा, जो फिर एक और बच्चे को पैदा करेगा, जब तक कि यह pythonw.exe
प्रक्रियाओं जहां तक आंख देख सके।
अन्य प्लेटफार्मों को उपप्रक्रिया शुरू करने के लिए उपयोग करते हैं, इसलिए मॉड्यूल को फिर से भरने की समस्या नहीं है।
तो आपका कोड इस तरह दिखना होगा:
बहुप्रोसेसिंग आयात प्रक्रिया से आयात आयात सीएसआईएफ़ एफएफ़ एफएपी (एक्स): प्रिंट 'वर्क्स', एक्स + 2 एससी.स्टडीउट.फ्लूश () अगर __name__ == '__main__': p = प्रक्रिया (लक्ष्य = फंक, आर्ग्स = (2,) ) पी। स्टार्ट () पी। जॉइन () पी। टर्मिनेट () प्रिंट 'किया' sys.stdout.flush ()
Comments
Post a Comment