में नहीं चलती है मेरे पास तत्वों का संग्रह है जो मैं समानांतर में संसाधित करना चाहता हूं। जब मैं List
का उपयोग करता हूं, समांतरता कार्य करता है। हालांकि, जब मैं Set
का उपयोग करता हूं, तो यह समानांतर में नहीं चलता है।हैशसेट से समांतर स्ट्रीम समानांतर
public static void main(String[] args) {
ParallelTest test = new ParallelTest();
List<Integer> list = Arrays.asList(1,2);
Set<Integer> set = new HashSet<>(list);
ForkJoinPool forkJoinPool = new ForkJoinPool(4);
System.out.println("set print");
try {
forkJoinPool.submit(() ->
set.parallelStream().forEach(test::print)
).get();
} catch (Exception e) {
return;
}
System.out.println("\n\nlist print");
try {
forkJoinPool.submit(() ->
list.parallelStream().forEach(test::print)
).get();
} catch (Exception e) {
return;
}
}
private void print(int i){
System.out.println("start: " + i);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
}
System.out.println("end: " + i);
}
यह आउटपुट है कि मैं खिड़कियों 7
set print
start: 1
end: 1
start: 2
end: 2
list print
start: 2
start: 1
end: 1
end: 2
पर मिलता है हम देख सकते हैं कि Set
से पहले तत्व करना पड़ा है:
मैं एक कोड नमूना है कि समस्या से पता चलता लिखा था दूसरे तत्व संसाधित होने से पहले खत्म करें। List
के लिए, दूसरा तत्व पहले तत्व समाप्त होने से पहले शुरू होता है।
क्या आप मुझे बता सकते हैं कि इस समस्या का कारण क्या है, और Set
संग्रह का उपयोग करके इसे कैसे टालना है?
इसे दो से अधिक तत्वों के साथ आज़माएं, जैसे 10. तत्व या कुछ।2 के साथ परिणाम बहुत अस्पष्ट हैं – nafas
जब आप 10 के साथ प्रयास करते हैं तो भी आप सभी सेट तत्वों को समानांतर नहीं कर सकते हैं। और मुझे समांतर में सभी तत्वों को चलाने की आवश्यकता है। – Nemo
किसी भी तरह से इस 10 के लिए उत्पादन (10 निष्पादकों के पूल के साथ) है तत्वों सेट प्रिंट शुरू: 8 शुरू: 0 शुरू: 4 शुरू: 6 शुरू: 2 अंत: 2 अंत: 6 अंत: 4 अंत: 0 शुरू: 1 अंत: 8 शुरू: 9 शुरू: 5 शुरू: 7 शुरू: 3 अंत: 3 अंत: 5 अंत: 9 अंत: 7 अंत: 1 ,210 सूची प्रिंट शुरू : 7 शुरू: 3 शुरू: 0 शुरू: 6 शुरू: 9 शुरू: 8 शुरू: 5 शुरू: 4 शुरू: 2 शुरू: 1 अंत: 0 अंत: 6 अंत: 7 अंत: 9 अंत: 2 अंत: 3 अंत: 8 अंत: 5 अंत: 1 अंत: 4 नहीं सभी सेट तत्वों से [यहां] (http आ रहा है समानांतर – Nemo