निम्नलिखित समवर्ती धागे में चलाने के लिए के रूप में मैं उम्मीद प्रकट नहीं होता है, बल्कि प्रत्येक प्रक्रिया ब्लॉक यह पूरा हो गया है जब तक:पर्ल में समवर्ती धागे कैसे चलाएं?
my @arr = (1,2,3,4);
foreach (@arr) {
threads->new(\&doSomething, $_)->join;
}
sub doSomething {
my $thread = shift;
print "thread $thread\n";
sleep(5);
}
दूसरे शब्दों में, यह गैर पिरोया संस्करण के समान क्रियान्वित प्रतीत होता है होगा:
my @arr = (1,2,3,4);
foreach (@arr) {
doSomething($_);
}
मैं ActivePerl v5.10.1 mswin32-86-बहु धागा
मैं पर्ल में समवर्ती धागे को चलाने के लिए कैसे चल रहा है?
मैं इस की कोशिश की है - बस एक ही बार में उत्पन्न करने वाला है, तो सूत्र के माध्यम से पुनरावृत्ति और शामिल होने, लेकिन जैसे ही पहले शामिल होने के ब्लॉक कहा जाता है, यह। यह लगभग है जैसे कि मुझे प्रत्येक थ्रेड पूरा होने तक उपज करने की आवश्यकता होती है, फिर शामिल हों, लेकिन मुझे पूरा यकीन नहीं है कि – user210757
बिल्कुल कैसे करें। 'जॉइन' एक अवरुद्ध ऑपरेशन है। लेकिन धागे जो पहले से ही पैदा हो चुके हैं, तब भी चलेंगे जब मुख्य प्रक्रिया 'जुड़ने' के लिए वापस आने की प्रतीक्षा कर रही है। इस मामले में, यदि आप सभी धागे को फेंकते हैं और फिर शामिल होते हैं, तो आप उम्मीद करेंगे कि पहले शामिल कॉल में लगभग 5 सेकंड लगेंगे, और अन्य सभी कॉल बहुत कम होने के लिए शामिल होंगे। – mob
उत्तर के रूप में चिह्नित किया गया है। सूची(), is_joinable के साथ संयोजन में मुझे क्या चाहिए - धन्यवाद – user210757