मैं पाइथन में मल्टीप्रोसेसिंग के लिए नया हूं और यह पता लगाने की कोशिश कर रहा हूं कि क्या मुझे दो कार्य एसिंक को कॉल करने के लिए पूल या प्रोसेस का उपयोग करना चाहिए। मैंने दो कार्यों को कर्ल कॉल किया है और जानकारी को 2 अलग सूचियों में पार्स कर दिया है। इंटरनेट कनेक्शन के आधार पर, प्रत्येक फ़ंक्शन में लगभग 4 सेकंड लग सकते हैं। मुझे एहसास है कि बाधा आईएसपी कनेक्शन में है और मल्टीप्रोसेसिंग इसे ज्यादा तेज नहीं करेगा, लेकिन यह अच्छा होगा कि वे दोनों एसिंक को लातें। इसके अलावा, यह मेरे लिए पाइथन की बहु-प्रसंस्करण में शामिल होने के लिए एक महान सीखने का अनुभव है क्योंकि मैं इसे और बाद में उपयोग करूँगा।पाइथन मल्टीप्रोसेसिंग प्रक्रिया या पूल जो मैं कर रहा हूं उसके लिए?
मैंने Python multiprocessing.Pool: when to use apply, apply_async or map? पढ़ा है और यह उपयोगी था, लेकिन अभी भी मेरे अपने प्रश्न थे।
तो एक ही रास्ता है कि मैं यह कर सकता है:
प्रश्न मैं इस लागू करने के लिए है: 1) के बाद से ब्लॉक में शामिल होने के लिए बुला प्रक्रिया पूर्ण होने तक ... इस का क्या मतलब है p1 प्रक्रिया को समाप्त करने के लिए किया पी 2 प्रक्रिया से पहले लात मार दिया गया है? मैं हमेशा .join() को पूल.प्ली() और pool.apply_sync() के समान समझा जाता हूं।() प्राप्त करें (जहां) मूल प्रक्रिया एक और प्रक्रिया (कार्य) लॉन्च नहीं कर सकती है जब तक कि चालू एक रन पूरा नहीं हो जाता है।
अन्य वैकल्पिक होगा की तरह कुछ:
def foo():
pass
def bar():
pass
pool = Pool(processes=2)
p1 = pool.apply_async(foo)
p1 = pool.apply_async(bar)
प्रश्न यह लागू करने के लिए मेरे पास होगा: 1) मैं एक pool.close की ज़रूरत है(), pool.join()? 2) क्या पूल प्राप्त करने से पहले पूल.मैप() उन्हें पूरा कर देगा? और यदि हां, तो क्या वे अभी भी एसिंच चला रहे हैं? 3) pool.apply_async() पूल के साथ प्रत्येक प्रक्रिया को करने से अलग कैसे होगा .apply() 4) प्रक्रिया के साथ पिछले कार्यान्वयन से यह अलग कैसे होगा?
क्या आप सुनिश्चित हैं कि पी 2 प्रक्रिया को खत्म करने से पहले पी 2 प्रक्रिया को खत्म करना है क्योंकि()? http://bpaste.net/show/ruHgFTAAMkN4UT2INPqu/ से आउटपुट पी 1 खत्म होने से पहले पी 2 किक्स की तरह दिखता है। – dman
मेरा मतलब था, 'पी 1' शामिल होने के बाद' पी 2' शामिल हो जाएगा। गलतफहमी के लिए माफी। बेशक, जैसे ही उचित 'प्रारंभ() 'वापस आ गया है, दोनों प्रक्रियाएं बंद हो जाती हैं। –