{"id":68062,"date":"2024-07-04T02:12:39","date_gmt":"2024-07-03T22:42:39","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/"},"modified":"2024-07-04T02:12:39","modified_gmt":"2024-07-03T22:42:39","slug":"paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/","title":{"rendered":"\u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 102: \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u062c\u0627\u0648\u0627 \u062f\u0631 \u0639\u0645\u0644"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc &#8220;\u0645\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 101&#8221; \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0633\u0627\u0633\u06cc \u067e\u06cc\u0631\u0627\u0645\u0648\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0628\u062d\u062b \u067e\u0631\u062f\u0627\u062e\u062a\u06cc\u0645.  \u0645\u0627 \u0628\u062d\u062b \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0648\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647\u060c \u0645\u0627 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a parallel stream \u062f\u0631 \u062c\u0627\u0648\u0627  \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0647 \u062f\u0631 \u062c\u0627\u0648\u0627 8\u060c parallel stream \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0647\u0627 \u0631\u0627 \u062a\u0633\u0647\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0632 \u0647\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f CPU \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631 \u0631\u0648\u06cc \u062d\u062c\u0645 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647\u0631\u0647 \u0645\u06cc\u200c\u0628\u0631\u062f. <\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 parallel stream \u06a9\u0627\u0631\u0647\u0627\u060c \u0645\u0632\u0627\u06cc\u0627 \u0648 \u0645\u0639\u0627\u06cc\u0628 \u0622\u0646\u060c \u0648 \u0646\u062d\u0648\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a\u062e\u0631 \u0646\u062e \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647.  \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u06a9\u0646\u06cc\u06a9 &#8220;\u0633\u0631\u0642\u062a \u06a9\u0627\u0631&#8221; \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a \u0635\u062d\u0628\u062a \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f ForkJoinPool \u0648 \u0627\u0647\u0645\u06cc\u062a \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc.<\/p>\n<p>\u0628\u06cc\u0627\u060c \u0645\u0627 \u0645\u0637\u0627\u0644\u0628 \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u067e\u0648\u0634\u0634 \u062f\u0627\u0631\u06cc\u0645!<\/p>\n<p>  \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<p>  \u062c\u0631\u06cc\u0627\u0646 \u0645\u0648\u0627\u0632\u06cc: \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0622\u0633\u0627\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a<\/p>\n<p>\u062c\u0627\u0648\u0627 8 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u0634\u06cc \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631 \u0648 \u0627\u0646\u062c\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631 \u0631\u0648\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0639\u0644\u0627\u0645\u06cc \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f.  Stream \u0647\u0627 \u06cc\u06a9 API \u063a\u0646\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646\u060c \u0646\u0642\u0634\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc\u060c \u06a9\u0627\u0647\u0634 \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062c\u0631\u06cc\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u062a\u0631\u062a\u06cc\u0628\u06cc \u06cc\u0627 \u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0647\u0631 \u062f\u0648 \u0646\u0648\u0639 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627 \u0645\u062b\u0627\u0644 \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  \u0645\u062a\u0648\u0627\u0644\u06cc<\/p>\n<p>import java.util.Arrays;<br \/>\nimport java.util.List;<\/p>\n<p>public class SequentialStreamExample {<br \/>\n    public static void main(String[] args) {<br \/>\n        ListInteger&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);<\/p>\n<p>        \/\/ Criando um stream sequencial<br \/>\n        numbers.stream()<br \/>\n               .forEach(n -&gt; System.out.println(&#8220;Thread: &#8221; + Thread.currentThread().getName() + &#8221; &#8211; N\u00famero: &#8221; + n));<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u062a\u062f stream() \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0632 \u0644\u06cc\u0633\u062a \u0627\u0639\u062f\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u0639\u0645\u0644\u06cc\u0627\u062a forEach \u0631\u0648\u06cc \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 \u0644\u06cc\u0633\u062a \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0634\u0645\u0627\u0631\u0647 \u0631\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0646\u0627\u0645 \u0631\u0634\u062a\u0647 \u0627\u06cc \u06a9\u0647 \u0639\u0646\u0635\u0631 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0647\u0645\u0647 \u0639\u0646\u0627\u0635\u0631 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645\u060c \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u06cc\u062f:<\/p>\n<p>\u279c  sandbox java SequentialStreamExample<br \/>\nThread: main &#8211; N\u00famero: 1<br \/>\nThread: main &#8211; N\u00famero: 2<br \/>\nThread: main &#8211; N\u00famero: 3<br \/>\nThread: main &#8211; N\u00famero: 4<br \/>\nThread: main &#8211; N\u00famero: 5<br \/>\nThread: main &#8211; N\u00famero: 6<br \/>\nThread: main &#8211; N\u00famero: 7<br \/>\nThread: main &#8211; N\u00famero: 8<br \/>\nThread: main &#8211; N\u00famero: 9<br \/>\nThread: main &#8211; N\u00famero: 10<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0648\u0627\u0632\u06cc<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 parallel.  \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 parallel stream:<\/p>\n<p>import java.util.Arrays;<br \/>\nimport java.util.List;<\/p>\n<p>public class ParallelStreamExample {<br \/>\n    public static void main(String[] args) {<br \/>\n        ListInteger&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);<\/p>\n<p>        \/\/ Criando um stream paralelo<br \/>\n        numbers.parallelStream()<br \/>\n                .forEach(n -&gt; System.out.println(&#8220;Thread: &#8221; + Thread.currentThread().getName() + &#8221; &#8211; N\u00famero: &#8221; + n));<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0631\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645\u060c \u062a\u0631\u062a\u06cc\u0628 \u0647\u0645\u06cc\u0634\u0647 \u0645\u062a\u0641\u0627\u0648\u062a \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<p>\u279c  sandbox java ParallelStreamExample<br \/>\nThread: ForkJoinPool.commonPool-worker-2 &#8211; N\u00famero: 2<br \/>\nThread: main &#8211; N\u00famero: 7<br \/>\nThread: ForkJoinPool.commonPool-worker-6 &#8211; N\u00famero: 4<br \/>\nThread: ForkJoinPool.commonPool-worker-3 &#8211; N\u00famero: 5<br \/>\nThread: ForkJoinPool.commonPool-worker-4 &#8211; N\u00famero: 9<br \/>\nThread: ForkJoinPool.commonPool-worker-1 &#8211; N\u00famero: 3<br \/>\nThread: ForkJoinPool.commonPool-worker-9 &#8211; N\u00famero: 10<br \/>\nThread: ForkJoinPool.commonPool-worker-8 &#8211; N\u00famero: 6<br \/>\nThread: ForkJoinPool.commonPool-worker-7 &#8211; N\u00famero: 8<br \/>\nThread: ForkJoinPool.commonPool-worker-5 &#8211; N\u00famero: 1<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0631\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0647\u0645 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0633\u062a\u0631\u06cc\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0647\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0648 \u0647\u0645 \u0645\u0648\u0627\u0632\u06cc\u060c \u0627\u0645\u0627 \u0645\u0646 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u06a9\u0644\u06cc\u0641 \u0634\u0645\u0627 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u0645.<\/p>\n<p>  \u062a\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc<\/p>\n<p>\u062d\u0627\u0644 \u06a9\u0647 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0628\u0627 parallel\u060c \u0686\u0647 \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc \u062a\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0645\u0637\u0631\u062d \u06a9\u0631\u062f\u06cc\u0645\u060c \u062f\u0627\u0631\u062f\u061f<\/p>\n<p>  \u0686\u06af\u0648\u0646\u0647 parallel stream \u0622\u06cc\u0627 \u0627\u0632 \u0631\u0642\u0627\u0628\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/p>\n<p>\u0648\u0642\u062a\u06cc \u06cc\u06a9 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 parallel stream\u060c \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646\u060c \u062c\u0627\u0648\u0627 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0628\u0647 \u0686\u0646\u062f \u06a9\u0627\u0631 \u0641\u0631\u0639\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.  \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u0628\u0647 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.  \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0634\u0627\u0645\u0644 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a\u060c \u0645\u0627\u0646\u0646\u062f:<\/p>\n<p>\u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u0648\u0636\u0648\u0639\u0627\u062a: O ForkJoinPool \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f parallel stream.<br \/>\n\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc: \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0645\u0646 \u0628\u0648\u062f\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9.<br \/>\n\u062a\u063a\u06cc\u06cc\u0631 \u0632\u0645\u06cc\u0646\u0647: \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 ForkJoinPool \u0648\u0638\u0627\u06cc\u0641\u06cc \u0631\u0627 \u0627\u0632 \u0635\u0641 thread \u0645\u0634\u063a\u0648\u0644 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0631\u0648\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0634\u063a\u0627\u0644 \u0646\u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/p>\n<p>  \u0686\u06af\u0648\u0646\u0647 parallel stream \u0622\u06cc\u0627 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/p>\n<p>O parallel stream \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u06cc\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0647\u0633\u062a\u0647 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0628\u0647\u0631\u0647 \u0645\u06cc \u0628\u0631\u062f.  \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u06cc\u0639\u062a\u0631 \u0634\u0648\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u06a9\u0647 \u0645\u0633\u062a\u0642\u0644 \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0628\u062f\u0648\u0646 \u062a\u062f\u0627\u062e\u0644 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u0646\u062f.<\/p>\n<p>  ForkJoinPool &#8211; homi \u0686\u06cc\u0633\u062a \ud83d\ude33\u061f<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c parallel stream \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f ForkJoinPool.commonPool()\u060c \u06a9\u0647 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0631\u0634\u062a\u0647 \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0648\u0631\u06a9\/\u067e\u06cc\u0648\u0633\u062a\u0646 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0627\u0633\u062a\u062e\u0631 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u062a\u0639\u062f\u0627\u062f\u06cc \u0631\u0634\u062a\u0647 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u0627\u0632\u06cc \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u0646\u062f \u0645\u0648\u0636\u0648\u0639 \u062f\u0627\u0631\u06cc\u0645 forkJoinPool \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a\u060c \u0641\u0642\u0637 \u062a\u0639\u062f\u0627\u062f \u0631\u0646\u06af \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062c\u0627\u0648\u0627 \u0631\u0627 \u0686\u0627\u067e \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u062e\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0627\u0648\u0627 \u062f\u0631 \u0645\u06a9 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u0645:<\/p>\n<p>System.out.println(&#8220;Number of cores available: &#8220;+ Runtime.getRuntime().availableProcessors());<\/p>\n<p>Number of cores available: 12<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0639\u062f\u062f \u0628\u0627\u0644\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0645\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0638\u0631\u0648\u0641 \u062f\u0631\u06af\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>  \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 ForkJoinPool \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f<\/p>\n<p>\ud83d\uded1 \u0646\u06a9\u062a\u0647: \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0646\u06a9\u0646\u06cc\u062f! <\/p>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0632 ForkJoinPool.commonPool() \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f java.util.concurrent.ForkJoinPool.common.parallelism.  \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc JVM \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647 -D \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<p>java -Djava.util.concurrent.ForkJoinPool.common.parallelism=8 MinhaAplicacao<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f ForkJoinPool.commonPool() \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 8 \u0631\u0634\u062a\u0647<\/p>\n<p>  \u0686\u0648\u0646 \u062a\u0648 \u0646\u0647 \u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 ForkJoinPool \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0645\u061f<\/p>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f ForkJoinPool.commonPool() \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 \u0627\u0633\u062a\u062e\u0631 \u0645\u0634\u062a\u0631\u06a9 \u0646\u06cc\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062a\u0623\u062b\u06cc\u0631 \u0645\u0646\u0641\u06cc \u0628\u06af\u0630\u0627\u0631\u062f. <\/p>\n<p>O commonPool \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0631\u0641\u062a\u0627\u0631 \u0622\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0633\u0627\u0626\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062a\u0634\u062e\u06cc\u0635 \u0622\u0646\u0647\u0627 \u062f\u0634\u0648\u0627\u0631 \u0627\u0633\u062a.  \u062f\u0631 \u0639\u0648\u0636\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f ForkJoinPool \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u062f\u0642\u06cc\u0642 \u062f\u0627\u0631\u0646\u062f\u060c \u0633\u0641\u0627\u0631\u0634\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0648 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0633\u0627\u06cc\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u0646\u062f.<\/p>\n<p>  \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0628\u0647\u062a\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>\u2705 \u0646\u06a9\u062a\u0647: \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f!<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d thread pool \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0631\u0648\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f ForkJoinPool#submit \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f parallel stream \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0633\u062a\u062e\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc.<\/p>\n<p>import java.util.Arrays;<br \/>\nimport java.util.List;<br \/>\nimport java.util.concurrent.ForkJoinPool;<\/p>\n<p>public class CustomForkJoinPoolExample {<br \/>\n    public static void main(String[] args) {<br \/>\n        ListInteger&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);<\/p>\n<p>        \/\/ Configurando o ForkJoinPool para usar um n\u00famero espec\u00edfico de threads<br \/>\n        ForkJoinPool customThreadPool = new ForkJoinPool(4);<\/p>\n<p>        try {<br \/>\n            customThreadPool.submit(() -&gt;<br \/>\n                    numbers.parallelStream()<br \/>\n                            .forEach(n -&gt; {<br \/>\n                                System.out.println(&#8220;Thread: &#8221; + Thread.currentThread().getName() + &#8221; &#8211; N\u00famero: &#8221; + n);<br \/>\n                            })<br \/>\n            ).get();<br \/>\n        } catch (Exception e) {<br \/>\n            e.printStackTrace();<br \/>\n        } finally {<br \/>\n            customThreadPool.shutdown();<br \/>\n        }<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0648\u0642\u062a\u06cc \u0686\u0627\u067e \u0642\u0628\u0644\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0645\u060c 12 \u0631\u0646\u06af \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u062f\u0627\u0634\u062a\u0645\u060c \u0627\u0645\u0627 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u06a9\u062f \u0628\u0627\u0644\u0627\u060c \u0641\u0642\u0637 4 \u0631\u0634\u062a\u0647 \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u0634\u062a.<\/p>\n<p>Thread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 6<br \/>\nThread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 8<br \/>\nThread: ForkJoinPool-1-worker-1 &#8211; N\u00famero: 7<br \/>\nThread: ForkJoinPool-1-worker-2 &#8211; N\u00famero: 3<br \/>\nThread: ForkJoinPool-1-worker-3 &#8211; N\u00famero: 9<br \/>\nThread: ForkJoinPool-1-worker-3 &#8211; N\u00famero: 1<br \/>\nThread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 10<br \/>\nThread: ForkJoinPool-1-worker-1 &#8211; N\u00famero: 2<br \/>\nThread: ForkJoinPool-1-worker-2 &#8211; N\u00famero: 5<br \/>\nThread: ForkJoinPool-1-worker-3 &#8211; N\u00famero: 4<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0627\u0648\u0644\u060c \u0648\u0638\u0627\u06cc\u0641\u06cc \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u062a\u0648\u0633\u0637 main \u0646\u062e.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062f\u0631 custom \u0648\u0638\u0627\u06cc\u0641 \u0645\u0627 \u0641\u0642\u0637 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062f\u0631 \u0627\u0633\u062a\u062e\u0631 \u0645\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u062f\u0627\u0646\u06cc\u0645 parallel stream \u0648 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f (ForkJoinPool)\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0686\u0646\u062f \u0686\u06cc\u0632 \u062c\u0627\u0644\u0628 \u062f\u06cc\u06af\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u062d\u062b \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  Work-Stealing  \u0628\u062f\u0648\u0646 ForkJoinPool<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0642\u0628\u0644\u0627 \u0630\u06a9\u0631 \u06a9\u0631\u062f\u06cc\u0645\u060c ForkJoinPool \u0645\u062e\u0632\u0646 \u0646\u062e \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0627\u0633\u062a parallel stream.  \u0627\u06cc\u0646 \u0627\u0633\u062a\u062e\u0631 \u062a\u06a9\u0646\u06cc\u06a9\u06cc \u0628\u0647 \u0646\u0627\u0645 \u00ab\u0633\u0631\u0642\u062a \u06a9\u0627\u0631\u00bb \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0648 \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0628\u06cc\u0646 \u0631\u0632\u0648\u0647 \u0647\u0627 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<p>  \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/p>\n<p>\u0628\u062e\u0634 \u0648\u0638\u06cc\u0641\u0647: \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u0628\u0647 ForkJoinPool\u060c \u0628\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0627\u0633\u062a\u062e\u0631 \u062a\u0648\u0632\u06cc\u0639 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0647\u0631 \u0631\u0634\u062a\u0647 \u06cc\u06a9 \u0635\u0641 \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u0627\u062c\u0631\u0627\u06cc \u0645\u062d\u0644\u06cc: \u0647\u0631 \u0631\u0634\u062a\u0647 \u0633\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u0632 \u0635\u0641 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.  \u0627\u06af\u0631 \u0645\u0648\u0636\u0648\u0639\u06cc \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u062a\u0645\u0627\u0645 \u06a9\u0646\u062f \u06cc\u0627 \u0628\u06cc\u06a9\u0627\u0631 \u0634\u0648\u062f\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u06a9\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.<br \/>\nWork Stealing: \u0627\u06af\u0631 \u06a9\u0627\u0631 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062a\u0645\u0627\u0645 \u0634\u0648\u062f\u060c \u0633\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u0632 \u0635\u0641 \u0647\u0627\u06cc \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u062f\u0632\u062f\u062f.  \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u06af\u0631\u0641\u062a\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0635\u0641 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062e\u0648\u062f \u0646\u062e \u0642\u0631\u0628\u0627\u0646\u06cc \u0627\u0632 \u0627\u0628\u062a\u062f\u0627\u06cc \u0635\u0641 \u062e\u0648\u062f \u0628\u0647 \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u0627\u06cc\u0641 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0647\u0645\u0647 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0645\u0634\u063a\u0648\u0644 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0647 \u0634\u0648\u0646\u062f \u0648 \u062d\u062c\u0645 \u06a9\u0627\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0645\u062a\u0639\u0627\u062f\u0644 \u0634\u0648\u062f.<\/p>\n<p>  \u0645\u062b\u0627\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0627\u0631 \u062f\u0632\u062f\u06cc<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 ForkJoinPool \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0645\u0634\u062e\u0635\u06cc \u0627\u0632 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0628\u0627 \u0632\u0645\u0627\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062c\u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645.  \u0647\u062f\u0641 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u062e \u0647\u0627\u06cc \u0628\u06cc\u06a9\u0627\u0631 \u0627\u0632 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0646\u0648\u0632 \u0645\u0634\u063a\u0648\u0644 \u0647\u0633\u062a\u0646\u062f\u060c \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>import java.util.Arrays;<br \/>\nimport java.util.List;<br \/>\nimport java.util.concurrent.ForkJoinPool;<\/p>\n<p>public class WorkStealingExample {<br \/>\n    public static void main(String[] args) {<br \/>\n        ListInteger&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);<\/p>\n<p>        \/\/ Configurando o ForkJoinPool para usar um n\u00famero espec\u00edfico de threads<br \/>\n        ForkJoinPool customThreadPool = new ForkJoinPool(4);<\/p>\n<p>        try {<br \/>\n            customThreadPool.submit(() -&gt;<br \/>\n                    numbers.parallelStream()<br \/>\n                            .forEach(n -&gt; {<br \/>\n                                try {<br \/>\n                                    if (n % 2 == 0) {<br \/>\n                                        \/\/ Simulando uma tarefa que leva tempo<br \/>\n                                        Thread.sleep(2000);<br \/>\n                                    } else {<br \/>\n                                        Thread.sleep(100);<br \/>\n                                    }<br \/>\n                                } catch (InterruptedException e) {<br \/>\n                                    e.printStackTrace();<br \/>\n                                }<br \/>\n                                System.out.println(&#8220;Thread: &#8221; + Thread.currentThread().getName() + &#8221; &#8211; N\u00famero: &#8221; + n);<br \/>\n                            })<br \/>\n            ).get();<br \/>\n        } catch (Exception e) {<br \/>\n            e.printStackTrace();<br \/>\n        } finally {<br \/>\n            customThreadPool.shutdown();<br \/>\n        }<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06af\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u062a\u0645\u0627\u06cc\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0641\u0631\u062f \u0627\u0628\u062a\u062f\u0627 \u062a\u0645\u0627\u0645 \u0634\u0648\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u062c\u0631\u0627\u0647\u0627\u06cc \u0645\u0646 \u0627\u06cc\u0646 \u0628\u0648\u062f:<\/p>\n<p>Thread: ForkJoinPool-1-worker-2 &#8211; N\u00famero: 3<br \/>\nThread: ForkJoinPool-1-worker-1 &#8211; N\u00famero: 7<br \/>\nThread: ForkJoinPool-1-worker-3 &#8211; N\u00famero: 9<br \/>\nThread: ForkJoinPool-1-worker-2 &#8211; N\u00famero: 5<br \/>\nThread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 6<br \/>\nThread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 1<br \/>\nThread: ForkJoinPool-1-worker-3 &#8211; N\u00famero: 10<br \/>\nThread: ForkJoinPool-1-worker-1 &#8211; N\u00famero: 2<br \/>\nThread: ForkJoinPool-1-worker-2 &#8211; N\u00famero: 4<br \/>\nThread: ForkJoinPool-1-worker-4 &#8211; N\u00famero: 8<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648 \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0645\u06cc \u0627\u0641\u062a\u062f \u0627\u06af\u0631 forkJoinPool \u0646\u06a9\u0631\u062f\u0647 \u0628\u0648\u062f work-stealing?  \u062e\u0648\u0628\u060c \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0648\u0638\u0627\u06cc\u0641 \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u0646\u062f \u0648 \u0628\u06cc\u200c\u062d\u0631\u06a9\u062a \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0634\u0644\u0648\u063a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u06cc\u06a9 \u06af\u0644\u0648\u06af\u0627\u0647 \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062a\u0639\u062c\u0628!  \u062d\u062a\u0645\u0627\u064b \u0641\u06a9\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u00ab\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0627\u0646\u0645\u060c \u0647\u0645\u06cc\u0634\u0647 \u062e\u0644\u0642 \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f parallel streams \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u0645!&#8221;<\/p>\n<p>\u0622\u0631\u0627\u0645 \u0628\u0627\u0634 \u067e\u0627\u062f\u0627\u0648\u0627\u0646 \u062c\u0648\u0627\u0646\u060c \u0645\u062b\u0644 \u0647\u0645\u06cc\u0634\u0647\u060c \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f&#8230;<\/p>\n<p>  \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u06cc\u0646 Sequential \u0647 Parallel<\/p>\n<p>\u062e\u0637\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u062c\u0627\u0644\u0628 \u0646\u06cc\u0633\u062a.  \u062c\u0627\u0648\u0627 \u062f\u0631 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u063a\u0644\u0628\u060c \u06cc\u06a9 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0633\u0627\u062f\u0647 () \u0639\u0645\u0644\u06a9\u0631\u062f \u0639\u0627\u0644\u06cc \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a!  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0628\u0627 \u06a9\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645:<\/p>\n<p>\/\/ Imports removidos pra manter o c\u00f3digo breve. Veja o repo para o c\u00f3digo completo.<\/p>\n<p>@BenchmarkMode(Mode.AverageTime)<br \/>\n@OutputTimeUnit(TimeUnit.MILLISECONDS)<br \/>\n@State(Scope.Thread)<br \/>\n@Fork(value = 2)<br \/>\npublic class SeqParallelBenchmark {<\/p>\n<p>    @Param({&#8220;100&#8221;, &#8220;1000000&#8221;})<br \/>\n    private int size;<br \/>\n    private ListInteger&gt; data;<\/p>\n<p>    @Setup<br \/>\n    public void setup() {<br \/>\n        data = IntStream.rangeClosed(1, size).boxed().collect(Collectors.toList());<br \/>\n    }<\/p>\n<p>    @Benchmark<br \/>\n    public void test_sequential() {<br \/>\n        data.stream().mapToInt(Integer::intValue).sum();<\/p>\n<p>    }<\/p>\n<p>    @Benchmark<br \/>\n    public void test_parallel() {<br \/>\n        data.stream().parallel().mapToInt(Integer::intValue).sum();<br \/>\n    }<\/p>\n<p>    public static void main(String[] args) throws RunnerException {<br \/>\n        Options opt = new OptionsBuilder()<br \/>\n                .include(SeqParallelBenchmark.class.getName()) \/\/ specify the benchmark class here<br \/>\n                .forks(2)<br \/>\n                .build();<br \/>\n        new Runner(opt).run();<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648\u0642\u062a\u06cc \u0645\u0639\u06cc\u0627\u0631 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645\u060c \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u06af\u0631\u0641\u062a\u0645:<\/p>\n<p>Benchmark                              (size)  Mode  Cnt   Score    Error  Units<br \/>\nSeqParallelBenchmark.test_sequential      100  avgt   10  \u2248 10\u207b\u2074           ms\/op<br \/>\nSeqParallelBenchmark.test_parallel        100  avgt   10   0.022 \u00b1  0.008  ms\/op<\/p>\n<p>SeqParallelBenchmark.test_sequential  1000000  avgt   10   0.482 \u00b1  0.016  ms\/op<br \/>\nSeqParallelBenchmark.test_parallel    1000000  avgt   10   0.117 \u00b1  0.016  ms\/op<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0627 100 \u0639\u0646\u0635\u0631\u060c \u0631\u0648\u0634 \u0645\u062a\u0648\u0627\u0644\u06cc \u062f\u0631 0.0001 ms \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0648\u0627\u0632\u06cc 0.022 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0637\u0648\u0644 \u0645\u06cc \u06a9\u0634\u062f\u060c \u062a\u0642\u0631\u06cc\u0628\u0627 200 \u0628\u0631\u0627\u0628\u0631 \u06a9\u0646\u062f\u062a\u0631.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0648\u0642\u062a\u06cc \u0628\u0631\u0627\u06cc \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0639\u0646\u0635\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0645\u0648\u0627\u0632\u06cc 4 \u0628\u0631\u0627\u0628\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 \u0646\u062a\u06cc\u062c\u0647 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0646 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0645\u0639\u06cc\u0627\u0631 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0628\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645:<\/p>\n<p>\/\/ Imports removidos pra manter o c\u00f3digo breve. Veja o repo para o c\u00f3digo completo.<\/p>\n<p>@BenchmarkMode(Mode.AverageTime)<br \/>\n@OutputTimeUnit(TimeUnit.MILLISECONDS)<br \/>\n@State(Scope.Thread)<br \/>\npublic class AnotherSeqParallelBenchmark {<\/p>\n<p>    @Param({&#8220;100&#8221;, &#8220;1000000&#8221;})<br \/>\n    private int size;<\/p>\n<p>    private ListInteger&gt; data;<\/p>\n<p>    @Setup<br \/>\n    public void setup() {<br \/>\n        data = IntStream.rangeClosed(1, size).boxed().collect(Collectors.toList());<br \/>\n    }<\/p>\n<p>    @Benchmark<br \/>\n    public ListDouble&gt; testSequentialStream() {<br \/>\n        return data.stream()<br \/>\n                .map(Math::sin)<br \/>\n                .collect(Collectors.toList());<br \/>\n    }<\/p>\n<p>    @Benchmark<br \/>\n    public ListDouble&gt; testParallelStream() {<br \/>\n        return data.parallelStream()<br \/>\n                .map(Math::sin)<br \/>\n                .collect(Collectors.toList());<br \/>\n    }<\/p>\n<p>    public static void main(String[] args) throws RunnerException {<br \/>\n        Options opt = new OptionsBuilder()<br \/>\n                .include(AnotherSeqParallelBenchmark.class.getName()) \/\/ specify the benchmark class here<br \/>\n                .forks(2)<br \/>\n                .build();<\/p>\n<p>        new Runner(opt).run();<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0648 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0634\u0627\u0628\u0647 \u0628\u0648\u062f:<\/p>\n<p>Benchmark                                          (size)  Mode  Cnt   Score    Error  Units<br \/>\nAnotherSeqParallelBenchmark.testSequentialStream      100  avgt   10   0.001 \u00b1  0.001  ms\/op<br \/>\nAnotherSeqParallelBenchmark.testParallelStream        100  avgt   10   0.027 \u00b1  0.005  ms\/op<\/p>\n<p>AnotherSeqParallelBenchmark.testParallelStream    1000000  avgt   10   2.234 \u00b1  0.025  ms\/op<br \/>\nAnotherSeqParallelBenchmark.testSequentialStream  1000000  avgt   10  16.164 \u00b1  0.573  ms\/op<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631\u060c \u062f\u0631 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0648\u0686\u06a9\u060c \u0645\u0648\u0627\u0632\u06cc \u0628\u062f\u062a\u0631 \u0627\u0632 \u062a\u0631\u062a\u06cc\u0628\u06cc (~27 \u0628\u0631\u0627\u0628\u0631 \u0628\u062f\u062a\u0631) \u0639\u0645\u0644 \u06a9\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0627 \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f\u06cc\u0645\u060c \u0639\u0645\u0644\u06a9\u0631\u062f 8 \u0628\u0631\u0627\u0628\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 \u0645\u062a\u0648\u0627\u0644\u06cc \u0628\u0648\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646 parallel:<\/p>\n<p>\u0627\u06af\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0634\u0645\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc\/\u062e\u0631\u0648\u062c\u06cc \u0627\u0633\u062a: \u062a\u0645\u0627\u0633 \u0634\u0628\u06a9\u0647 \u0628\u0627 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0628\u0627\u0634\u062f \u06cc\u0627 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644.  \u0686\u0631\u0627\u061f  \u0634\u0645\u0627 \u0627\u0632 I\/O \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 CPU \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u060c \u062f\u0631 \u0648\u0627\u0642\u0639\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0646\u0633\u0628\u062a \u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0627\u062e\u06cc\u0631 \u0645\u0646 ~ 500 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0645\u060c \u0628\u0633\u06cc\u0627\u0631 \u0628\u0627\u0644\u0627\u062a\u0631 \u0627\u0632 8 \u0647\u0633\u062a\u0647 \u062f\u0633\u062a\u06af\u0627\u0647\u0645.<\/p>\n<p>\u0627\u06af\u0631 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u06a9\u0645 \u0627\u0633\u062a: Parallel \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062f\u06cc\u062f\u06cc\u0645\u060c \u0633\u0631\u0628\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Thread Pool\u060c \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0648\u0638\u0627\u06cc\u0641\u060c \u0633\u0631\u0642\u062a \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u062a\u0648\u0642\u0641 \u0634\u062f\u0647 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u0627\u06af\u0631 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a\u060c \u0627\u06cc\u0646 \u0627\u062d\u062a\u0645\u0627\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 a sequential \u0633\u0631\u06cc\u0639\u062a\u0631 \u0627\u0632 \u06cc\u06a9 parallel.  \u062f\u0631 \u0635\u0648\u0631\u062a \u0634\u06a9\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u0627\u0631\u0632\u0634 \u0622\u0646 \u0631\u0627 \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f parallel:<\/p>\n<p>\u0627\u06af\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0634\u0645\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0627\u0633\u062a: \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0648 \u063a\u06cc\u0631\u0647  \u0686\u0631\u0627\u061f  \u0627\u06af\u0631 \u062a\u0639\u062f\u0627\u062f \u0646\u062e \u0647\u0627\u06cc \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062f\u0631 parallel stream \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647 \u0647\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0627\u0633\u062a \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u0646 \u0628\u0647 CPU \u0645\u062d\u062f\u0648\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062a\u0645\u0627\u0645 \u0647\u0633\u062a\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u062c\u0648\u062f \u062d\u062f\u0627\u06a9\u062b\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0628\u0628\u0631\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0648\u0638\u0627\u06cc\u0641 \u0634\u0645\u0627 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a: \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062c\u0627\u0644\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0634\u0645\u0627 \u0645\u0633\u062a\u0642\u0644 \u0648 \u0645\u0646\u0632\u0648\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0645\u0639\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f: \u0628\u0631\u062e\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f JMH.<\/p>\n<p>Parallel streams  \u0627\u06cc\u0646 \u06cc\u06a9 \u0631\u0627\u0647 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062f\u0646\u06cc\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u0648\u0627\u0632\u06cc \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0686\u0646\u062f\u06cc\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u0631\u0627 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0646\u06cc\u0633\u062a\u060c \u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0645\u06a9 \u0628\u0632\u0631\u06af\u06cc \u062f\u0631 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u062a\u0645\u0627\u0645 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0633\u062a \u062f\u0631 \u0645\u062e\u0632\u0646 \u0645\u0646 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a:<\/p>\n<p>      Repo \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 POC\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u060c \u0622\u0645\u0648\u0632\u0634 \u0647\u0627.<\/p>\n<p>Repo \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 POC\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u060c \u0622\u0645\u0648\u0632\u0634 \u0647\u0627.<\/p>\n<p>com.hugodesmarques.parallel &#8211; \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0631\u0627\u06cc \u0645\u0642\u0627\u0644\u0647 &#8220;\u0645\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 102: \u062c\u0631\u06cc\u0627\u0646\u0647\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u062c\u0627\u0648\u0627 \u062f\u0631 \u0639\u0645\u0644&#8221;.<\/p>\n<p>\u062f\u0631 \u067e\u0633\u062a \u0628\u0639\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062e \u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0648 \u062d\u0648\u0636\u0686\u0647 \u0647\u0627\u06cc \u0646\u062e \u0628\u0627 \u0645\u062c\u0631\u06cc \u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.  \u0622\u0646\u062c\u0627 \u0645\u06cc\u0628\u06cc\u0646\u0645\u062a!<\/p>\n<div data-article-id=\"1901312\" id=\"article-body\">\n<p>\u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc &#8220;\u0645\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 101&#8221; \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0633\u0627\u0633\u06cc \u067e\u06cc\u0631\u0627\u0645\u0648\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0628\u062d\u062b \u067e\u0631\u062f\u0627\u062e\u062a\u06cc\u0645.  \u0645\u0627 \u0628\u062d\u062b \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062f\u0648\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647\u060c \u0645\u0627 \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u062f\u0627\u062e\u062a <code>parallel stream<\/code> \u062f\u0631 \u062c\u0627\u0648\u0627  \u0645\u0639\u0631\u0641\u06cc \u0634\u062f\u0647 \u062f\u0631 \u062c\u0627\u0648\u0627 8\u060c <code>parallel stream<\/code> \u0648\u06cc\u0698\u06af\u06cc\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u0648\u0627\u0632\u06cc \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0647\u0627 \u0631\u0627 \u062a\u0633\u0647\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u0632 \u0647\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f CPU \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631 \u0631\u0648\u06cc \u062d\u062c\u0645 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647\u0631\u0647 \u0645\u06cc\u200c\u0628\u0631\u062f. <\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 <code>parallel stream<\/code> \u06a9\u0627\u0631\u0647\u0627\u060c \u0645\u0632\u0627\u06cc\u0627 \u0648 \u0645\u0639\u0627\u06cc\u0628 \u0622\u0646\u060c \u0648 \u0646\u062d\u0648\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a\u062e\u0631 \u0646\u062e \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647.  \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u06a9\u0646\u06cc\u06a9 &#8220;\u0633\u0631\u0642\u062a \u06a9\u0627\u0631&#8221; \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a \u0635\u062d\u0628\u062a \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>ForkJoinPool<\/code> \u0648 \u0627\u0647\u0645\u06cc\u062a \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc.<\/p>\n<p>\u0628\u06cc\u0627\u060c \u0645\u0627 \u0645\u0637\u0627\u0644\u0628 \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u067e\u0648\u0634\u0634 \u062f\u0627\u0631\u06cc\u0645!<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\" >\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A2%D8%B3%D8%A7%D9%86_%D8%B4%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\" >\u062c\u0631\u06cc\u0627\u0646 \u0645\u0648\u0627\u0632\u06cc: \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0622\u0633\u0627\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D9%85%D8%AA%D9%88%D8%A7%D9%84%DB%8C\" >\u0645\u062a\u0648\u0627\u0644\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D9%85%D9%88%D8%A7%D8%B2%DB%8C\" >\u0645\u0648\u0627\u0632\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%AA%D9%88%D8%A7%D8%B2%DB%8C_%D9%88_%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86%DB%8C\" >\u062a\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%DA%86%DA%AF%D9%88%D9%86%D9%87_parallel_stream_%D8%A2%DB%8C%D8%A7_%D8%A7%D8%B2_%D8%B1%D9%82%D8%A7%D8%A8%D8%AA_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0686\u06af\u0648\u0646\u0647 parallel stream \u0622\u06cc\u0627 \u0627\u0632 \u0631\u0642\u0627\u0628\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%DA%86%DA%AF%D9%88%D9%86%D9%87_parallel_stream_%D8%A2%DB%8C%D8%A7_%D8%A7%D8%B2_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0686\u06af\u0648\u0646\u0647 parallel stream \u0622\u06cc\u0627 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#ForkJoinPool_%E2%80%93_homi_%DA%86%DB%8C%D8%B3%D8%AA_%F0%9F%98%B3%D8%9F\" >ForkJoinPool &#8211; homi \u0686\u06cc\u0633\u062a \ud83d\ude33\u061f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87_ForkJoinPool_%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF\" >\u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 ForkJoinPool \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%DA%86%D9%88%D9%86_%D8%AA%D9%88_%D9%86%D9%87_%D8%A2%DB%8C%D8%A7_%D8%A8%D8%A7%DB%8C%D8%AF_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87_%D9%BE%DB%8C%D8%B4_%D9%81%D8%B1%D8%B6_ForkJoinPool_%D8%B1%D8%A7_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%AF%D9%87%D9%85%D8%9F\" >\u0686\u0648\u0646 \u062a\u0648 \u0646\u0647 \u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 ForkJoinPool \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0645\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D9%87%D8%AA%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0628\u0647\u062a\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#Work-Stealing_%D8%A8%D8%AF%D9%88%D9%86_ForkJoinPool\" >Work-Stealing  \u0628\u062f\u0648\u0646 ForkJoinPool<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%B3%D8%B1%D9%82%D8%AA_%DA%A9%D8%A7%D8%B1_%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0633\u0631\u0642\u062a \u06a9\u0627\u0631 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D9%85%D8%AB%D8%A7%D9%84_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%DA%A9%D8%A7%D8%B1_%D8%AF%D8%B2%D8%AF%DB%8C\" >\u0645\u062b\u0627\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0627\u0631 \u062f\u0632\u062f\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF_%D8%A8%DB%8C%D9%86_Sequential_%D9%87_Parallel\" >\u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u06cc\u0646 Sequential \u0647 Parallel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/paralelismo-e-concorrencia-102-java-parallel-streams-na-pratica-21g4\/#Repo_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B0%D8%AE%DB%8C%D8%B1%D9%87_POC%D8%8C_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4_%D9%87%D8%A7%D8%8C_%D8%A2%D9%85%D9%88%D8%B2%D8%B4_%D9%87%D8%A7\" >Repo \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 POC\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u060c \u0622\u0645\u0648\u0632\u0634 \u0647\u0627.<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\"><\/span>\n<p>  \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A2%D8%B3%D8%A7%D9%86_%D8%B4%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\"><\/span>\n<p>  \u062c\u0631\u06cc\u0627\u0646 \u0645\u0648\u0627\u0632\u06cc: \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0622\u0633\u0627\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062c\u0627\u0648\u0627 8 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u0634\u06cc \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u06a9\u0631\u0627\u0631 \u0648 \u0627\u0646\u062c\u0627\u0645 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631 \u0631\u0648\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0639\u0644\u0627\u0645\u06cc \u0645\u0639\u0631\u0641\u06cc \u06a9\u0631\u062f.  Stream \u0647\u0627 \u06cc\u06a9 API \u063a\u0646\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u06a9\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646\u060c \u0646\u0642\u0634\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc\u060c \u06a9\u0627\u0647\u0634 \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062c\u0631\u06cc\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u062a\u0631\u062a\u06cc\u0628\u06cc \u06cc\u0627 \u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0647\u0631 \u062f\u0648 \u0646\u0648\u0639 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0627 \u0645\u062b\u0627\u0644 \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%AA%D9%88%D8%A7%D9%84%DB%8C\"><\/span>\n<p>  \u0645\u062a\u0648\u0627\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.Arrays<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.List<\/span><span class=\"o\">;<\/span>\n\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">SequentialStreamExample<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">numbers<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Arrays<\/span><span class=\"o\">.<\/span><span class=\"na\">asList<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">,<\/span> <span class=\"mi\">8<\/span><span class=\"o\">,<\/span> <span class=\"mi\">9<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"c1\">\/\/ Criando um stream sequencial<\/span>\n        <span class=\"n\">numbers<\/span><span class=\"o\">.<\/span><span class=\"na\">stream<\/span><span class=\"o\">()<\/span>\n               <span class=\"o\">.<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Thread: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">currentThread<\/span><span class=\"o\">().<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" - N\u00famero: \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">n<\/span><span class=\"o\">));<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u062a\u062f stream() \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0632 \u0644\u06cc\u0633\u062a \u0627\u0639\u062f\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u0639\u0645\u0644\u06cc\u0627\u062a <code>forEach<\/code> \u0631\u0648\u06cc \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 \u0644\u06cc\u0633\u062a \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0634\u0645\u0627\u0631\u0647 \u0631\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0646\u0627\u0645 \u0631\u0634\u062a\u0647 \u0627\u06cc \u06a9\u0647 \u0639\u0646\u0635\u0631 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f \u0686\u0627\u067e \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0647\u0645\u0647 \u0639\u0646\u0627\u0635\u0631 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645\u060c \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"err\">\u279c<\/span>  <span class=\"n\">sandbox<\/span> <span class=\"n\">java<\/span> <span class=\"nc\">SequentialStreamExample<\/span>      \n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">1<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">2<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">3<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">4<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">5<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">6<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">7<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">8<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">9<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">10<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%88%D8%A7%D8%B2%DB%8C\"><\/span>\n<p>  \u0645\u0648\u0627\u0632\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 <code>parallel<\/code>.  \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 <code>parallel stream<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.Arrays<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.List<\/span><span class=\"o\">;<\/span>\n\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ParallelStreamExample<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">numbers<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Arrays<\/span><span class=\"o\">.<\/span><span class=\"na\">asList<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">,<\/span> <span class=\"mi\">8<\/span><span class=\"o\">,<\/span> <span class=\"mi\">9<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"c1\">\/\/ Criando um stream paralelo<\/span>\n        <span class=\"n\">numbers<\/span><span class=\"o\">.<\/span><span class=\"na\">parallelStream<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Thread: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">currentThread<\/span><span class=\"o\">().<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" - N\u00famero: \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">n<\/span><span class=\"o\">));<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u0631\u0627 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645\u060c \u062a\u0631\u062a\u06cc\u0628 \u0647\u0645\u06cc\u0634\u0647 \u0645\u062a\u0641\u0627\u0648\u062a \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"err\">\u279c<\/span>  <span class=\"n\">sandbox<\/span> <span class=\"n\">java<\/span> <span class=\"nc\">ParallelStreamExample<\/span>  \n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">2<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"n\">main<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">7<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">6<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">4<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">5<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">9<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">3<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">9<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">10<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">8<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">6<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">7<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">8<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">commonPool<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">5<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">1<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0647\u0645 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0633\u062a\u0631\u06cc\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0647\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0648 \u0647\u0645 \u0645\u0648\u0627\u0632\u06cc\u060c \u0627\u0645\u0627 \u0645\u0646 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u06a9\u0644\u06cc\u0641 \u0634\u0645\u0627 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D9%88%D8%A7%D8%B2%DB%8C_%D9%88_%D9%87%D9%85%D8%B2%D9%85%D8%A7%D9%86%DB%8C\"><\/span>\n<p>  \u062a\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062d\u0627\u0644 \u06a9\u0647 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0628\u0627 <code>parallel<\/code>\u060c \u0686\u0647 \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0628\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc \u062a\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0645\u0637\u0631\u062d \u06a9\u0631\u062f\u06cc\u0645\u060c \u062f\u0627\u0631\u062f\u061f<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%DA%AF%D9%88%D9%86%D9%87_parallel_stream_%D8%A2%DB%8C%D8%A7_%D8%A7%D8%B2_%D8%B1%D9%82%D8%A7%D8%A8%D8%AA_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0686\u06af\u0648\u0646\u0647 <code>parallel stream<\/code> \u0622\u06cc\u0627 \u0627\u0632 \u0631\u0642\u0627\u0628\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0648\u0642\u062a\u06cc \u06cc\u06a9 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 <code>parallel stream<\/code>\u060c \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646\u060c \u062c\u0627\u0648\u0627 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0628\u0647 \u0686\u0646\u062f \u06a9\u0627\u0631 \u0641\u0631\u0639\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.  \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u0628\u0647 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.  \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0634\u0627\u0645\u0644 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a\u060c \u0645\u0627\u0646\u0646\u062f:<\/p>\n<ul>\n<li>\u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u0648\u0636\u0648\u0639\u0627\u062a: O <code>ForkJoinPool<\/code> \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f <code>parallel stream<\/code>.<\/li>\n<li>\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc: \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0645\u0646 \u0628\u0648\u062f\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0631\u0648\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9.<\/li>\n<li>\u062a\u063a\u06cc\u06cc\u0631 \u0632\u0645\u06cc\u0646\u0647: \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 <code>ForkJoinPool<\/code> \u0648\u0638\u0627\u06cc\u0641\u06cc \u0631\u0627 \u0627\u0632 \u0635\u0641 thread \u0645\u0634\u063a\u0648\u0644 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0631\u0648\u06cc \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0634\u063a\u0627\u0644 \u0646\u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%DA%AF%D9%88%D9%86%D9%87_parallel_stream_%D8%A2%DB%8C%D8%A7_%D8%A7%D8%B2_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0686\u06af\u0648\u0646\u0647 <code>parallel stream<\/code> \u0622\u06cc\u0627 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>O <code>parallel stream<\/code> \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u06cc\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0647\u0633\u062a\u0647 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0628\u0647\u0631\u0647 \u0645\u06cc \u0628\u0631\u062f.  \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0646\u062c\u0631 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u06cc\u0639\u062a\u0631 \u0634\u0648\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u06a9\u0647 \u0645\u0633\u062a\u0642\u0644 \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0628\u062f\u0648\u0646 \u062a\u062f\u0627\u062e\u0644 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"ForkJoinPool_%E2%80%93_homi_%DA%86%DB%8C%D8%B3%D8%AA_%F0%9F%98%B3%D8%9F\"><\/span>\n<p>  ForkJoinPool &#8211; homi \u0686\u06cc\u0633\u062a \ud83d\ude33\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636\u060c <code>parallel stream<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f <code>ForkJoinPool.commonPool()<\/code>\u060c \u06a9\u0647 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0631\u0634\u062a\u0647 \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0648\u0631\u06a9\/\u067e\u06cc\u0648\u0633\u062a\u0646 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0627\u0633\u062a\u062e\u0631 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u062a\u0639\u062f\u0627\u062f\u06cc \u0631\u0634\u062a\u0647 \u0628\u0631\u0627\u0628\u0631 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0646\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u0627\u0632\u06cc \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u0646\u062f \u0645\u0648\u0636\u0648\u0639 \u062f\u0627\u0631\u06cc\u0645 <code>forkJoinPool<\/code> \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a\u060c \u0641\u0642\u0637 \u062a\u0639\u062f\u0627\u062f \u0631\u0646\u06af \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062c\u0627\u0648\u0627 \u0631\u0627 \u0686\u0627\u067e \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u062e\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0627\u0648\u0627 \u062f\u0631 \u0645\u06a9 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Number of cores available: \"<\/span><span class=\"o\">+<\/span> <span class=\"nc\">Runtime<\/span><span class=\"o\">.<\/span><span class=\"na\">getRuntime<\/span><span class=\"o\">().<\/span><span class=\"na\">availableProcessors<\/span><span class=\"o\">());<\/span>\n\n<span class=\"nc\">Number<\/span> <span class=\"n\">of<\/span> <span class=\"n\">cores<\/span> <span class=\"nl\">available:<\/span> <span class=\"mi\">12<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0639\u062f\u062f \u0628\u0627\u0644\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0645\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0638\u0631\u0648\u0641 \u062f\u0631\u06af\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87_ForkJoinPool_%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF\"><\/span>\n<p>  \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 <code>ForkJoinPool<\/code> \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<blockquote>\n<p>\ud83d\uded1 \u0646\u06a9\u062a\u0647: \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0646\u06a9\u0646\u06cc\u062f! <\/p>\n<\/blockquote>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0632 <code>ForkJoinPool.commonPool()<\/code> \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f <code>java.util.concurrent.ForkJoinPool.common.parallelism<\/code>.  \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc JVM \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647 -D \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"n\">java<\/span> <span class=\"o\">-<\/span><span class=\"nc\">Djava<\/span><span class=\"o\">.<\/span><span class=\"na\">util<\/span><span class=\"o\">.<\/span><span class=\"na\">concurrent<\/span><span class=\"o\">.<\/span><span class=\"na\">ForkJoinPool<\/span><span class=\"o\">.<\/span><span class=\"na\">common<\/span><span class=\"o\">.<\/span><span class=\"na\">parallelism<\/span><span class=\"o\">=<\/span><span class=\"mi\">8<\/span> <span class=\"nc\">MinhaAplicacao<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>ForkJoinPool.commonPool()<\/code> \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 8 \u0631\u0634\u062a\u0647<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%DA%86%D9%88%D9%86_%D8%AA%D9%88_%D9%86%D9%87_%D8%A2%DB%8C%D8%A7_%D8%A8%D8%A7%DB%8C%D8%AF_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87_%D9%BE%DB%8C%D8%B4_%D9%81%D8%B1%D8%B6_ForkJoinPool_%D8%B1%D8%A7_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D8%AF%D9%87%D9%85%D8%9F\"><\/span>\n<p>  \u0686\u0648\u0646 \u062a\u0648 <strong>\u0646\u0647<\/strong> \u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 ForkJoinPool \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u0645\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>ForkJoinPool.commonPool()<\/code> \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 \u0627\u0633\u062a\u062e\u0631 \u0645\u0634\u062a\u0631\u06a9 \u0646\u06cc\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062a\u0623\u062b\u06cc\u0631 \u0645\u0646\u0641\u06cc \u0628\u06af\u0630\u0627\u0631\u062f. <\/p>\n<p>O <code>commonPool<\/code> \u0627\u06cc\u0646 \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u0631\u0641\u062a\u0627\u0631 \u0622\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0633\u0627\u0626\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062a\u0634\u062e\u06cc\u0635 \u0622\u0646\u0647\u0627 \u062f\u0634\u0648\u0627\u0631 \u0627\u0633\u062a.  \u062f\u0631 \u0639\u0648\u0636\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>ForkJoinPool<\/code> \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u062f\u0642\u06cc\u0642 \u062f\u0627\u0631\u0646\u062f\u060c \u0633\u0641\u0627\u0631\u0634\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0648 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0633\u0627\u06cc\u0631 \u0628\u062e\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86_%D8%A8%D9%87%D8%AA%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0628\u0647\u062a\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<blockquote>\n<p>\u2705 \u0646\u06a9\u062a\u0647: \u062f\u0631 \u0635\u0648\u0631\u062a \u0644\u0632\u0648\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f!<\/p>\n<\/blockquote>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0635\u0644\u0627\u062d thread pool \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0631\u0648\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>ForkJoinPool#submit<\/code> \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f <code>parallel stream<\/code> \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0633\u062a\u062e\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.Arrays<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.List<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.concurrent.ForkJoinPool<\/span><span class=\"o\">;<\/span>\n\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CustomForkJoinPoolExample<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">numbers<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Arrays<\/span><span class=\"o\">.<\/span><span class=\"na\">asList<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">,<\/span> <span class=\"mi\">8<\/span><span class=\"o\">,<\/span> <span class=\"mi\">9<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"c1\">\/\/ Configurando o ForkJoinPool para usar um n\u00famero espec\u00edfico de threads<\/span>\n        <span class=\"nc\">ForkJoinPool<\/span> <span class=\"n\">customThreadPool<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">customThreadPool<\/span><span class=\"o\">.<\/span><span class=\"na\">submit<\/span><span class=\"o\">(()<\/span> <span class=\"o\">-&gt;<\/span>\n                    <span class=\"n\">numbers<\/span><span class=\"o\">.<\/span><span class=\"na\">parallelStream<\/span><span class=\"o\">()<\/span>\n                            <span class=\"o\">.<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"o\">{<\/span>\n                                <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Thread: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">currentThread<\/span><span class=\"o\">().<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" - N\u00famero: \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">n<\/span><span class=\"o\">);<\/span>\n                            <span class=\"o\">})<\/span>\n            <span class=\"o\">).<\/span><span class=\"na\">get<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">finally<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">customThreadPool<\/span><span class=\"o\">.<\/span><span class=\"na\">shutdown<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0648\u0642\u062a\u06cc \u0686\u0627\u067e \u0642\u0628\u0644\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0645\u060c 12 \u0631\u0646\u06af \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u062f\u0627\u0634\u062a\u0645\u060c \u0627\u0645\u0627 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u06a9\u062f \u0628\u0627\u0644\u0627\u060c \u0641\u0642\u0637 4 \u0631\u0634\u062a\u0647 \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u0634\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">6<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">8<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">7<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">3<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">9<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">1<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">10<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">2<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">5<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">4<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0627\u0648\u0644\u060c \u0648\u0638\u0627\u06cc\u0641\u06cc \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u062a\u0648\u0633\u0637 <code>main<\/code> \u0646\u062e.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062f\u0631 <code>custom<\/code> \u0648\u0638\u0627\u06cc\u0641 \u0645\u0627 \u0641\u0642\u0637 \u062a\u0648\u0633\u0637 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062f\u0631 \u0627\u0633\u062a\u062e\u0631 \u0645\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u062f\u0627\u0646\u06cc\u0645 <code>parallel stream<\/code> \u0648 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f (<code>ForkJoinPool<\/code>)\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0686\u0646\u062f \u0686\u06cc\u0632 \u062c\u0627\u0644\u0628 \u062f\u06cc\u06af\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u062d\u062b \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Work-Stealing_%D8%A8%D8%AF%D9%88%D9%86_ForkJoinPool\"><\/span>\n<p>  <code>Work-Stealing<\/code>  \u0628\u062f\u0648\u0646 ForkJoinPool<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0642\u0628\u0644\u0627 \u0630\u06a9\u0631 \u06a9\u0631\u062f\u06cc\u0645\u060c <code>ForkJoinPool<\/code> \u0645\u062e\u0632\u0646 \u0646\u062e \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0627\u0633\u062a <code>parallel stream<\/code>.  \u0627\u06cc\u0646 \u0627\u0633\u062a\u062e\u0631 \u062a\u06a9\u0646\u06cc\u06a9\u06cc \u0628\u0647 \u0646\u0627\u0645 \u00ab\u0633\u0631\u0642\u062a \u06a9\u0627\u0631\u00bb \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0648 \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0628\u06cc\u0646 \u0631\u0632\u0648\u0647 \u0647\u0627 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B3%D8%B1%D9%82%D8%AA_%DA%A9%D8%A7%D8%B1_%DA%86%DA%AF%D9%88%D9%86%D9%87_%DA%A9%D8%A7%D8%B1_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u0628\u062e\u0634 \u0648\u0638\u06cc\u0641\u0647: \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u0628\u0647 <code>ForkJoinPool<\/code>\u060c \u0628\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0641\u0631\u0639\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u06cc\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0627\u0633\u062a\u062e\u0631 \u062a\u0648\u0632\u06cc\u0639 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0647\u0631 \u0631\u0634\u062a\u0647 \u06cc\u06a9 \u0635\u0641 \u0627\u0632 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0627\u062c\u0631\u0627\u06cc \u0645\u062d\u0644\u06cc: \u0647\u0631 \u0631\u0634\u062a\u0647 \u0633\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u0632 \u0635\u0641 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.  \u0627\u06af\u0631 \u0645\u0648\u0636\u0648\u0639\u06cc \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u062a\u0645\u0627\u0645 \u06a9\u0646\u062f \u06cc\u0627 \u0628\u06cc\u06a9\u0627\u0631 \u0634\u0648\u062f\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u06a9\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.<\/li>\n<li>Work Stealing: \u0627\u06af\u0631 \u06a9\u0627\u0631 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062a\u0645\u0627\u0645 \u0634\u0648\u062f\u060c \u0633\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0627\u0632 \u0635\u0641 \u0647\u0627\u06cc \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0628\u062f\u0632\u062f\u062f.  \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u06af\u0631\u0641\u062a\u0646 \u0648\u0638\u0627\u06cc\u0641 \u0627\u0632 \u0627\u0646\u062a\u0647\u0627\u06cc \u0635\u0641 \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062e\u0648\u062f \u0646\u062e \u0642\u0631\u0628\u0627\u0646\u06cc \u0627\u0632 \u0627\u0628\u062a\u062f\u0627\u06cc \u0635\u0641 \u062e\u0648\u062f \u0628\u0647 \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u0627\u06cc\u0641 \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<\/ul>\n<p>\u0627\u06cc\u0646 \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0633\u0631\u0642\u062a \u06a9\u0627\u0631 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0647\u0645\u0647 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0645\u0634\u063a\u0648\u0644 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0647 \u0634\u0648\u0646\u062f \u0648 \u062d\u062c\u0645 \u06a9\u0627\u0631 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0645\u062a\u0639\u0627\u062f\u0644 \u0634\u0648\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%DA%A9%D8%A7%D8%B1_%D8%AF%D8%B2%D8%AF%DB%8C\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0627\u0631 \u062f\u0632\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 ForkJoinPool \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u0645\u0634\u062e\u0635\u06cc \u0627\u0632 \u0631\u0634\u062a\u0647 \u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u0648\u0638\u0627\u06cc\u0641 \u0631\u0627 \u0628\u0627 \u0632\u0645\u0627\u0646 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u062c\u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645.  \u0647\u062f\u0641 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u062e \u0647\u0627\u06cc \u0628\u06cc\u06a9\u0627\u0631 \u0627\u0632 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0646\u0648\u0632 \u0645\u0634\u063a\u0648\u0644 \u0647\u0633\u062a\u0646\u062f\u060c \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.Arrays<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.List<\/span><span class=\"o\">;<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">java.util.concurrent.ForkJoinPool<\/span><span class=\"o\">;<\/span>\n\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">WorkStealingExample<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">numbers<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Arrays<\/span><span class=\"o\">.<\/span><span class=\"na\">asList<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">,<\/span> <span class=\"mi\">3<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">5<\/span><span class=\"o\">,<\/span> <span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">,<\/span> <span class=\"mi\">8<\/span><span class=\"o\">,<\/span> <span class=\"mi\">9<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"c1\">\/\/ Configurando o ForkJoinPool para usar um n\u00famero espec\u00edfico de threads<\/span>\n        <span class=\"nc\">ForkJoinPool<\/span> <span class=\"n\">customThreadPool<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">(<\/span><span class=\"mi\">4<\/span><span class=\"o\">);<\/span>\n\n        <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">customThreadPool<\/span><span class=\"o\">.<\/span><span class=\"na\">submit<\/span><span class=\"o\">(()<\/span> <span class=\"o\">-&gt;<\/span>\n                    <span class=\"n\">numbers<\/span><span class=\"o\">.<\/span><span class=\"na\">parallelStream<\/span><span class=\"o\">()<\/span>\n                            <span class=\"o\">.<\/span><span class=\"na\">forEach<\/span><span class=\"o\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"o\">{<\/span>\n                                <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n                                    <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">%<\/span> <span class=\"mi\">2<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                                        <span class=\"c1\">\/\/ Simulando uma tarefa que leva tempo<\/span>\n                                        <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">sleep<\/span><span class=\"o\">(<\/span><span class=\"mi\">2000<\/span><span class=\"o\">);<\/span>\n                                    <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n                                        <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">sleep<\/span><span class=\"o\">(<\/span><span class=\"mi\">100<\/span><span class=\"o\">);<\/span>\n                                    <span class=\"o\">}<\/span>\n                                <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"o\">(<\/span><span class=\"nc\">InterruptedException<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                                    <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n                                <span class=\"o\">}<\/span>\n                                <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Thread: \"<\/span> <span class=\"o\">+<\/span> <span class=\"nc\">Thread<\/span><span class=\"o\">.<\/span><span class=\"na\">currentThread<\/span><span class=\"o\">().<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" - N\u00famero: \"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">n<\/span><span class=\"o\">);<\/span>\n                            <span class=\"o\">})<\/span>\n            <span class=\"o\">).<\/span><span class=\"na\">get<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">finally<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">customThreadPool<\/span><span class=\"o\">.<\/span><span class=\"na\">shutdown<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06af\u0631 \u06a9\u062f \u0628\u0627\u0644\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u062a\u0645\u0627\u06cc\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0628\u0627 \u0627\u0639\u062f\u0627\u062f \u0641\u0631\u062f \u0627\u0628\u062a\u062f\u0627 \u062a\u0645\u0627\u0645 \u0634\u0648\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u062c\u0631\u0627\u0647\u0627\u06cc \u0645\u0646 \u0627\u06cc\u0646 \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">3<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">7<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">9<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">5<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">6<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">1<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">3<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">10<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">2<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">4<\/span>\n<span class=\"nl\">Thread:<\/span> <span class=\"nc\">ForkJoinPool<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">worker<\/span><span class=\"o\">-<\/span><span class=\"mi\">4<\/span> <span class=\"o\">-<\/span> <span class=\"nl\">N\u00famero:<\/span> <span class=\"mi\">8<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0645\u06cc \u0627\u0641\u062a\u062f \u0627\u06af\u0631 <code>forkJoinPool<\/code> \u0646\u06a9\u0631\u062f\u0647 \u0628\u0648\u062f <code>work-stealing<\/code>?  \u062e\u0648\u0628\u060c \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0648\u0638\u0627\u06cc\u0641 \u06a9\u0648\u0686\u06a9\u200c\u062a\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u0646\u062f \u0648 \u0628\u06cc\u200c\u062d\u0631\u06a9\u062a \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0632\u0631\u06af\u200c\u062a\u0631 \u0634\u0644\u0648\u063a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u06cc\u06a9 \u06af\u0644\u0648\u06af\u0627\u0647 \u063a\u06cc\u0631\u0636\u0631\u0648\u0631\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062a\u0639\u062c\u0628!  \u062d\u062a\u0645\u0627\u064b \u0641\u06a9\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u00ab\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0627\u0646\u0645\u060c \u0647\u0645\u06cc\u0634\u0647 \u062e\u0644\u0642 \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f <code>parallel streams<\/code> \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u0645!&#8221;<\/p>\n<p>\u0622\u0631\u0627\u0645 \u0628\u0627\u0634 \u067e\u0627\u062f\u0627\u0648\u0627\u0646 \u062c\u0648\u0627\u0646\u060c \u0645\u062b\u0644 \u0647\u0645\u06cc\u0634\u0647\u060c \u0628\u0633\u062a\u06af\u06cc \u062f\u0627\u0631\u062f&#8230;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF_%D8%A8%DB%8C%D9%86_Sequential_%D9%87_Parallel\"><\/span>\n<p>  \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u06cc\u0646 <code>Sequential<\/code> \u0647 <code>Parallel<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062e\u0637\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u062c\u0627\u0644\u0628 \u0646\u06cc\u0633\u062a.  \u062c\u0627\u0648\u0627 \u062f\u0631 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u063a\u0644\u0628\u060c \u06cc\u06a9 \u0627\u0633\u062a\u0631\u06cc\u0645 \u0645\u062a\u0648\u0627\u0644\u06cc \u0633\u0627\u062f\u0647 () \u0639\u0645\u0644\u06a9\u0631\u062f \u0639\u0627\u0644\u06cc \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a!  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0628\u0627 \u06a9\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"c1\">\/\/ Imports removidos pra manter o c\u00f3digo breve. Veja o repo para o c\u00f3digo completo.<\/span>\n\n<span class=\"nd\">@BenchmarkMode<\/span><span class=\"o\">(<\/span><span class=\"nc\">Mode<\/span><span class=\"o\">.<\/span><span class=\"na\">AverageTime<\/span><span class=\"o\">)<\/span>\n<span class=\"nd\">@OutputTimeUnit<\/span><span class=\"o\">(<\/span><span class=\"nc\">TimeUnit<\/span><span class=\"o\">.<\/span><span class=\"na\">MILLISECONDS<\/span><span class=\"o\">)<\/span>\n<span class=\"nd\">@State<\/span><span class=\"o\">(<\/span><span class=\"nc\">Scope<\/span><span class=\"o\">.<\/span><span class=\"na\">Thread<\/span><span class=\"o\">)<\/span>\n<span class=\"nd\">@Fork<\/span><span class=\"o\">(<\/span><span class=\"n\">value<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">2<\/span><span class=\"o\">)<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">SeqParallelBenchmark<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"nd\">@Param<\/span><span class=\"o\">({<\/span><span class=\"s\">\"100\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"1000000\"<\/span><span class=\"o\">})<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">size<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">data<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"nd\">@Setup<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">setup<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">IntStream<\/span><span class=\"o\">.<\/span><span class=\"na\">rangeClosed<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">size<\/span><span class=\"o\">).<\/span><span class=\"na\">boxed<\/span><span class=\"o\">().<\/span><span class=\"na\">collect<\/span><span class=\"o\">(<\/span><span class=\"nc\">Collectors<\/span><span class=\"o\">.<\/span><span class=\"na\">toList<\/span><span class=\"o\">());<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Benchmark<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">test_sequential<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"na\">stream<\/span><span class=\"o\">().<\/span><span class=\"na\">mapToInt<\/span><span class=\"o\">(<\/span><span class=\"nl\">Integer:<\/span><span class=\"o\">:<\/span><span class=\"n\">intValue<\/span><span class=\"o\">).<\/span><span class=\"na\">sum<\/span><span class=\"o\">();<\/span>\n\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Benchmark<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">test_parallel<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"na\">stream<\/span><span class=\"o\">().<\/span><span class=\"na\">parallel<\/span><span class=\"o\">().<\/span><span class=\"na\">mapToInt<\/span><span class=\"o\">(<\/span><span class=\"nl\">Integer:<\/span><span class=\"o\">:<\/span><span class=\"n\">intValue<\/span><span class=\"o\">).<\/span><span class=\"na\">sum<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">RunnerException<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">Options<\/span> <span class=\"n\">opt<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">OptionsBuilder<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">include<\/span><span class=\"o\">(<\/span><span class=\"nc\">SeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">())<\/span> <span class=\"c1\">\/\/ specify the benchmark class here<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">forks<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">)<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n        <span class=\"k\">new<\/span> <span class=\"nf\">Runner<\/span><span class=\"o\">(<\/span><span class=\"n\">opt<\/span><span class=\"o\">).<\/span><span class=\"na\">run<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648\u0642\u062a\u06cc \u0645\u0639\u06cc\u0627\u0631 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647\u0645 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645\u060c \u0646\u062a\u06cc\u062c\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u06af\u0631\u0641\u062a\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nc\">Benchmark<\/span>                              <span class=\"o\">(<\/span><span class=\"n\">size<\/span><span class=\"o\">)<\/span>  <span class=\"nc\">Mode<\/span>  <span class=\"nc\">Cnt<\/span>   <span class=\"nc\">Score<\/span>    <span class=\"nc\">Error<\/span>  <span class=\"nc\">Units<\/span>\n<span class=\"nc\">SeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">test_sequential<\/span>      <span class=\"mi\">100<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>  <span class=\"err\">\u2248<\/span> <span class=\"mi\">10<\/span><span class=\"err\">\u207b\u2074<\/span>           <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<span class=\"nc\">SeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">test_parallel<\/span>        <span class=\"mi\">100<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">0.022<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.008<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n\n<span class=\"nc\">SeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">test_sequential<\/span>  <span class=\"mi\">1000000<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">0.482<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.016<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<span class=\"nc\">SeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">test_parallel<\/span>    <span class=\"mi\">1000000<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">0.117<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.016<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0627 100 \u0639\u0646\u0635\u0631\u060c \u0631\u0648\u0634 \u0645\u062a\u0648\u0627\u0644\u06cc \u062f\u0631 0.0001 ms \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0648\u0627\u0632\u06cc 0.022 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0637\u0648\u0644 \u0645\u06cc \u06a9\u0634\u062f\u060c \u062a\u0642\u0631\u06cc\u0628\u0627 200 \u0628\u0631\u0627\u0628\u0631 \u06a9\u0646\u062f\u062a\u0631.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0648\u0642\u062a\u06cc \u0628\u0631\u0627\u06cc \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0639\u0646\u0635\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0645\u0648\u0627\u0632\u06cc 4 \u0628\u0631\u0627\u0628\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 \u0646\u062a\u06cc\u062c\u0647 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0645\u0646 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0645\u0639\u06cc\u0627\u0631 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0628\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"c1\">\/\/ Imports removidos pra manter o c\u00f3digo breve. Veja o repo para o c\u00f3digo completo.<\/span>\n\n<span class=\"nd\">@BenchmarkMode<\/span><span class=\"o\">(<\/span><span class=\"nc\">Mode<\/span><span class=\"o\">.<\/span><span class=\"na\">AverageTime<\/span><span class=\"o\">)<\/span>\n<span class=\"nd\">@OutputTimeUnit<\/span><span class=\"o\">(<\/span><span class=\"nc\">TimeUnit<\/span><span class=\"o\">.<\/span><span class=\"na\">MILLISECONDS<\/span><span class=\"o\">)<\/span>\n<span class=\"nd\">@State<\/span><span class=\"o\">(<\/span><span class=\"nc\">Scope<\/span><span class=\"o\">.<\/span><span class=\"na\">Thread<\/span><span class=\"o\">)<\/span>\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">AnotherSeqParallelBenchmark<\/span> <span class=\"o\">{<\/span>\n\n    <span class=\"nd\">@Param<\/span><span class=\"o\">({<\/span><span class=\"s\">\"100\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"1000000\"<\/span><span class=\"o\">})<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">size<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">data<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"nd\">@Setup<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">setup<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">IntStream<\/span><span class=\"o\">.<\/span><span class=\"na\">rangeClosed<\/span><span class=\"o\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">,<\/span> <span class=\"n\">size<\/span><span class=\"o\">).<\/span><span class=\"na\">boxed<\/span><span class=\"o\">().<\/span><span class=\"na\">collect<\/span><span class=\"o\">(<\/span><span class=\"nc\">Collectors<\/span><span class=\"o\">.<\/span><span class=\"na\">toList<\/span><span class=\"o\">());<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Benchmark<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Double<\/span><span class=\"o\">&gt;<\/span> <span class=\"nf\">testSequentialStream<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"na\">stream<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">map<\/span><span class=\"o\">(<\/span><span class=\"nl\">Math:<\/span><span class=\"o\">:<\/span><span class=\"n\">sin<\/span><span class=\"o\">)<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">collect<\/span><span class=\"o\">(<\/span><span class=\"nc\">Collectors<\/span><span class=\"o\">.<\/span><span class=\"na\">toList<\/span><span class=\"o\">());<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"nd\">@Benchmark<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"nc\">List<\/span><span class=\"o\"><span class=\"nc\">Double<\/span><span class=\"o\">&gt;<\/span> <span class=\"nf\">testParallelStream<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">data<\/span><span class=\"o\">.<\/span><span class=\"na\">parallelStream<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">map<\/span><span class=\"o\">(<\/span><span class=\"nl\">Math:<\/span><span class=\"o\">:<\/span><span class=\"n\">sin<\/span><span class=\"o\">)<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">collect<\/span><span class=\"o\">(<\/span><span class=\"nc\">Collectors<\/span><span class=\"o\">.<\/span><span class=\"na\">toList<\/span><span class=\"o\">());<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">RunnerException<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">Options<\/span> <span class=\"n\">opt<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">OptionsBuilder<\/span><span class=\"o\">()<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">include<\/span><span class=\"o\">(<\/span><span class=\"nc\">AnotherSeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">())<\/span> <span class=\"c1\">\/\/ specify the benchmark class here<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">forks<\/span><span class=\"o\">(<\/span><span class=\"mi\">2<\/span><span class=\"o\">)<\/span>\n                <span class=\"o\">.<\/span><span class=\"na\">build<\/span><span class=\"o\">();<\/span>\n\n        <span class=\"k\">new<\/span> <span class=\"nf\">Runner<\/span><span class=\"o\">(<\/span><span class=\"n\">opt<\/span><span class=\"o\">).<\/span><span class=\"na\">run<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n<\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0646\u062a\u06cc\u062c\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0634\u0627\u0628\u0647 \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"nc\">Benchmark<\/span>                                          <span class=\"o\">(<\/span><span class=\"n\">size<\/span><span class=\"o\">)<\/span>  <span class=\"nc\">Mode<\/span>  <span class=\"nc\">Cnt<\/span>   <span class=\"nc\">Score<\/span>    <span class=\"nc\">Error<\/span>  <span class=\"nc\">Units<\/span>\n<span class=\"nc\">AnotherSeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">testSequentialStream<\/span>      <span class=\"mi\">100<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">0.001<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.001<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<span class=\"nc\">AnotherSeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">testParallelStream<\/span>        <span class=\"mi\">100<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">0.027<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.005<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n\n<span class=\"nc\">AnotherSeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">testParallelStream<\/span>    <span class=\"mi\">1000000<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>   <span class=\"mf\">2.234<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.025<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<span class=\"nc\">AnotherSeqParallelBenchmark<\/span><span class=\"o\">.<\/span><span class=\"na\">testSequentialStream<\/span>  <span class=\"mi\">1000000<\/span>  <span class=\"n\">avgt<\/span>   <span class=\"mi\">10<\/span>  <span class=\"mf\">16.164<\/span> <span class=\"err\">\u00b1<\/span>  <span class=\"mf\">0.573<\/span>  <span class=\"n\">ms<\/span><span class=\"o\">\/<\/span><span class=\"n\">op<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631\u060c \u062f\u0631 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0648\u0686\u06a9\u060c \u0645\u0648\u0627\u0632\u06cc \u0628\u062f\u062a\u0631 \u0627\u0632 \u062a\u0631\u062a\u06cc\u0628\u06cc (~27 \u0628\u0631\u0627\u0628\u0631 \u0628\u062f\u062a\u0631) \u0639\u0645\u0644 \u06a9\u0631\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0627 \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u0627\u062c\u0647 \u0634\u062f\u06cc\u0645\u060c \u0639\u0645\u0644\u06a9\u0631\u062f 8 \u0628\u0631\u0627\u0628\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 \u0645\u062a\u0648\u0627\u0644\u06cc \u0628\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646 <code>parallel<\/code>:<\/strong><\/p>\n<ol>\n<li>\n<strong>\u0627\u06af\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0634\u0645\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u0648\u0631\u0648\u062f\u06cc\/\u062e\u0631\u0648\u062c\u06cc \u0627\u0633\u062a<\/strong>: \u062a\u0645\u0627\u0633 \u0634\u0628\u06a9\u0647 \u0628\u0627 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0628\u0627\u0634\u062f \u06cc\u0627 \u0646\u0648\u0634\u062a\u0646 \u0641\u0627\u06cc\u0644.  \u0686\u0631\u0627\u061f  \u0634\u0645\u0627 \u0627\u0632 I\/O \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 CPU \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f\u060c \u062f\u0631 \u0648\u0627\u0642\u0639\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0646\u0633\u0628\u062a \u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0627\u062e\u06cc\u0631 \u0645\u0646 ~ 500 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0645\u060c \u0628\u0633\u06cc\u0627\u0631 \u0628\u0627\u0644\u0627\u062a\u0631 \u0627\u0632 8 \u0647\u0633\u062a\u0647 \u062f\u0633\u062a\u06af\u0627\u0647\u0645.<\/li>\n<li>\n<strong>\u0627\u06af\u0631 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u06a9\u0645 \u0627\u0633\u062a<\/strong>: <code>Parallel<\/code> \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u062f\u06cc\u062f\u06cc\u0645\u060c \u0633\u0631\u0628\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Thread Pool\u060c \u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0648\u0638\u0627\u06cc\u0641\u060c \u0633\u0631\u0642\u062a \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u062a\u0648\u0642\u0641 \u0634\u062f\u0647 \u0648 \u063a\u06cc\u0631\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639\u060c \u0627\u06af\u0631 \u062d\u062c\u0645 \u062f\u0627\u062f\u0647 \u0634\u0645\u0627 \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a\u060c \u0627\u06cc\u0646 \u0627\u062d\u062a\u0645\u0627\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 a <code>sequential<\/code> \u0633\u0631\u06cc\u0639\u062a\u0631 \u0627\u0632 \u06cc\u06a9 <code>parallel<\/code>.  \u062f\u0631 \u0635\u0648\u0631\u062a \u0634\u06a9\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0622\u06cc\u0627 \u0627\u0631\u0632\u0634 \u0622\u0646 \u0631\u0627 \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.<\/li>\n<\/ol>\n<p><strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>parallel<\/code>:<\/strong><\/p>\n<ol>\n<li>\n<strong>\u0627\u06af\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0634\u0645\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 CPU \u0627\u0633\u062a<\/strong>: \u062a\u0628\u062f\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0648 \u063a\u06cc\u0631\u0647  \u0686\u0631\u0627\u061f  \u0627\u06af\u0631 \u062a\u0639\u062f\u0627\u062f \u0646\u062e \u0647\u0627\u06cc \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062f\u0631 <code>parallel stream<\/code> \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647 \u0647\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0627\u0633\u062a \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u0646 \u0628\u0647 CPU \u0645\u062d\u062f\u0648\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062a\u0645\u0627\u0645 \u0647\u0633\u062a\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u062c\u0648\u062f \u062d\u062f\u0627\u06a9\u062b\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0628\u0628\u0631\u06cc\u062f.<\/li>\n<li>\n<strong>\u0627\u06af\u0631 \u0648\u0638\u0627\u06cc\u0641 \u0634\u0645\u0627 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a<\/strong>: \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0645\u0648\u0627\u0632\u06cc \u0633\u0627\u0632\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062c\u0627\u0644\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0648\u0638\u0627\u06cc\u0641 \u0634\u0645\u0627 \u0645\u0633\u062a\u0642\u0644 \u0648 \u0645\u0646\u0632\u0648\u06cc \u0647\u0633\u062a\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0648 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/li>\n<li>\n<strong>\u0627\u06af\u0631 \u0645\u0639\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/strong>: \u0628\u0631\u062e\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f JMH.<\/li>\n<\/ol>\n<p><code>Parallel streams<\/code>  \u0627\u06cc\u0646 \u06cc\u06a9 \u0631\u0627\u0647 \u0622\u0633\u0627\u0646 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062f\u0646\u06cc\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u0648\u0627\u0632\u06cc \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0686\u0646\u062f\u06cc\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u0631\u0627 \u0627\u0646\u062a\u0632\u0627\u0639\u06cc \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0646\u06cc\u0633\u062a\u060c \u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u062e\u0648\u0628\u06cc \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0645\u06a9 \u0628\u0632\u0631\u06af\u06cc \u062f\u0631 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u062a\u0645\u0627\u0645 \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0633\u062a \u062f\u0631 \u0645\u062e\u0632\u0646 \u0645\u0646 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a:<\/p>\n<div class=\"ltag-github-readme-tag\">\n<div class=\"readme-overview\">\n<h3><span class=\"ez-toc-section\" id=\"Repo_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B0%D8%AE%DB%8C%D8%B1%D9%87_POC%D8%8C_%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4_%D9%87%D8%A7%D8%8C_%D8%A2%D9%85%D9%88%D8%B2%D8%B4_%D9%87%D8%A7\"><\/span>\n<p>      Repo \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 POC\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u060c \u0622\u0645\u0648\u0632\u0634 \u0647\u0627.<br \/>\n    <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/p><\/div>\n<div class=\"ltag-github-body\">\n<div id=\"readme\" class=\"md\" data-path=\"README.md\">\n<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\">\n<p dir=\"auto\">Repo \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 POC\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0647\u0627\u060c \u0622\u0645\u0648\u0632\u0634 \u0647\u0627.<\/p>\n<ul dir=\"auto\">\n<li>com.hugodesmarques.parallel &#8211; \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0631\u0627\u06cc \u0645\u0642\u0627\u0644\u0647 &#8220;\u0645\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 102: \u062c\u0631\u06cc\u0627\u0646\u0647\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u062c\u0627\u0648\u0627 \u062f\u0631 \u0639\u0645\u0644&#8221;.<\/li>\n<\/ul>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u067e\u0633\u062a \u0628\u0639\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u062e \u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0648 \u062d\u0648\u0636\u0686\u0647 \u0647\u0627\u06cc \u0646\u062e \u0628\u0627 \u0645\u062c\u0631\u06cc \u0631\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.  \u0622\u0646\u062c\u0627 \u0645\u06cc\u0628\u06cc\u0646\u0645\u062a!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc &#8220;\u0645\u0648\u0627\u0632\u06cc \u0648 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc 101&#8221; \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0633\u0627\u0633\u06cc \u067e\u06cc\u0631\u0627\u0645\u0648\u0646 \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0628\u062d\u062b \u067e\u0631\u062f\u0627\u062e\u062a\u06cc\u0645. \u0645\u0627 \u0628\u062d\u062b \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0628\u062e\u0634\u0646\u062f. &hellip;<\/p>\n","protected":false},"author":2,"featured_media":68063,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-68062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=68062"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68062\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/68063"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=68062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=68062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=68062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}