2012-07-23 33 views
15

मैं पायथन में एक ऐप लिख रहा हूं और मुझे एक साथ कुछ कार्यों को चलाने की जरूरत है। मॉड्यूल मल्टीप्रोसेसिंग क्लास प्रोसेस और समवर्ती। फ्यूचर्स मॉड्यूल को क्लास ProcessPoolExecutor प्रदान करता है। दोनों अपने कार्यों को निष्पादित करने के लिए कई प्रक्रियाओं का उपयोग करते प्रतीत होते हैं, लेकिन उनके एपीआई अलग हैं। मुझे दूसरे पर एक का उपयोग क्यों करना चाहिए?पाइथन में मल्टीप्रोसेसिंग पर समवर्ती.फ्यूचर के फायदे क्या हैं?

मुझे पता है कि समवर्ती। फ्यूचर्स पायथन 3 में जोड़ा गया था, तो मुझे लगता है कि यह बेहतर है?

+0

http://stackoverflow.com/questions/24896193/whats-the-difference-between-pythons-multiprocessing-and-concurrent-futures का डुप्लिकेट लेकिन बंद नहीं होना चाहिए क्योंकि उत्तर अन्य जगहों को अनुपलब्ध प्रदान करता है। – max

उत्तर

12

समवर्ती.फ्यूचर के लिए प्रेरणा PEP में शामिल हैं।

मेरे व्यावहारिक अनुभव में concurrent.futures लंबे समय से चलने वाले कार्य जमा करने और निगरानी स्थितियों के लिए एक अधिक सुविधाजनक प्रोग्रामिंग मॉडल प्रदान करता है। एक प्रोग्राम जिसे मैंने हाल ही में समवर्ती.फ्यूचर का उपयोग करके लिखा है, जिसमें 2-3 घंटे की खिड़की पर आने वाली फाइलों के लिए निर्देशिका की निगरानी करना शामिल है, प्रत्येक फ़ाइल को एक कार्य में आने के रूप में अनुवाद करना, इसे सबमिट करना आदि। ProcessPoolExecutor द्वारा लौटाई गई भविष्य की वस्तुएं कार्य की स्थिति को ट्रैक करने, सुविधाजनक माध्यम से इंटरमीडिएट स्टेटस रिपोर्ट आदि प्रदान करने की अनुमति देती हैं।

संबंधित मुद्दे