2011-08-31 19 views
7

रूबी या पायथन में वास्तविक सहमति प्राप्त करने के लिए, मुझे नई प्रक्रियाएं बनाने की आवश्यकता है। पाइथन multiprocessing मॉड्यूल का उपयोग करके यह बहुत सरल बनाता है, जो सभी कांटा/प्रतीक्षा भलाई को दूर करता है और मुझे अपने कोड पर ध्यान केंद्रित करने देता है। क्या रूबी के समान कुछ है? अभी मैं अपनी सहमति प्राप्त करने के लिए Process.fork और Process.wait पर कॉल कर रहा हूं, और मुझे क्लीनर समाधान चाहिए।रुबी के पाइथन के मल्टीप्रोसेसिंग मॉड्यूल के बराबर क्या है?

+0

नहीं वास्तव में प्रश्न का उत्तर :) लेकिन के लिए करते हैं: रूबी अब थोड़ी देर के लिए देशी धागे का उपयोग करता है, तो सूत्र वास्तव में प्राप्त करने के लिए एक बहुत अच्छा तरीका है " वास्तविक "समवर्ती। इसके अलावा, आपको साझा डेटा संरचनाओं आदि के बारे में चिंता करने की आवश्यकता नहीं है (स्पष्ट थ्रेड-सुरक्षा के अलावा) –

+0

क्या आप पहले से ही इस [एक] [1] से गुजर चुके हैं? [1]: http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby – Bourne

+0

@Niklas: मैं के साथ अटक कर रहा हूँ रूबी 1.8 काम पर :( –

उत्तर

4

मैंने https://github.com/grosser/parallel का उपयोग किया है, और इसे बहुत पसंद है। यह डिफ़ॉल्ट रूप से आपके सिस्टम में सभी कोरों में # मैप या #each होगा। हुड के तहत यह Process.fork के चारों ओर एक रैपर है, जो आप जो पूछ रहे हैं उसके जैसा लगता है।

+0

समांतर के साथ एकमात्र मुद्दा यह है कि यह मुझे फोर्किंग के बाद कुछ भी करने की अनुमति नहीं देता है। यह हमेशा कार्यों को पूरा करने की प्रतीक्षा करता है। – dknight

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