तो, मैं जावा 8. मैं एक धारा है कि एक अलग थ्रेड (सिर्फ शैक्षिक उद्देश्यों के लिए) पर चला सकते हैंStream.parallel() एक नया धागा का उपयोग करता है?
String oracle = "http://www.oracle.com";
URL url = new URL(oracle);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
in.lines().parallel().forEach(System.out::println);
System.out.print("CLOSING THE INPUT STREAM!, shouldnt this crash?");
in.close();
बनाने के लिए कोशिश कर रहा हूँ में शुरू की गई स्ट्रीम एपीआई के आसपास मेरे सिर प्राप्त करने के लिए कोशिश कर रहा हूँ नतीजा यह नहीं है कि मैं क्या उम्मीद करूंगा .. (मैं एक दुर्घटना की उम्मीद कर रहा था, क्योंकि मैंने इनपुट स्ट्रीम बंद कर दिया था जबकि अन्य धागा इसे पढ़ रहा था)। .parallel()
विधि कॉल पर ध्यान दें। इसके बजाए कोड किसी अनुक्रमिक तरीके से निष्पादित नहीं होता है, जिसमें कोई समस्या नहीं है।
उत्पादन:
<script language="JavaScript" src="http://www.oracleimg.com/us/assets/metrics/ora_ocom_hp.js"></script>
<!-- End SiteCatalyst code -->
<!-- SS_END_SNIPPET(fragment6,1)-->
<!-- SS_BEGIN_SNIPPET(fragment7,ui)--> <!-- SS_END_SNIPPET(fragment7,ui)-->
</html>
CLOSING THE INPUT STREAM!, shouldnt this crash?
किसी को भी पता है क्या हो रहा है? मेरा कोड क्यों नहीं क्रैश हो रहा है?
यदि आप चीजों को अवरुद्ध नहीं करना चाहते हैं तो आप 'फोर्कजोइनपूल' का उपयोग कर सकते हैं। – Maroun