{"id":772,"date":"2024-11-15T17:46:51","date_gmt":"2024-11-15T08:46:51","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=772"},"modified":"2025-03-24T08:52:51","modified_gmt":"2025-03-23T23:52:51","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91java%e3%81%ae%e4%b8%a6%e5%88%97%e5%87%a6%e7%90%86%e3%82%92%e5%ae%8c%e5%85%a8%e7%90%86%e8%a7%a3%ef%bc%817%e3%81%a4%e3%81%ae%e5%ae%9f%e8%a3%85%e3%83%91","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=772","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011Java\u306e\u4e26\u5217\u51e6\u7406\u3092\u5b8c\u5168\u7406\u89e3\uff017\u3064\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3068\u6539\u5584\u30c6\u30af\u30cb\u30c3\u30af"},"content":{"rendered":"<div id=\"sgb-css-id-1\">\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">\u306f\u3058\u3081\u306b<\/a>  <\/li>  <li>    <a href=\"#i-1\">\uff11\uff0e\u4e26\u5217\u51e6\u7406\u306e\u57fa\u790e\u77e5\u8b58<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-2\">1.1 \u4e26\u5217\u51e6\u7406\u3068\u306f\u4f55\u304b\uff1f\u30b7\u30f3\u30d7\u30eb\u306a\u56f3\u89e3\u3067\u7406\u89e3\u3059\u308b<\/a>      <\/li>      <li>        <a href=\"#i-5\">1.2 \u306a\u305cJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u4e26\u5217\u51e6\u7406\u304c\u5fc5\u8981\u306a\u306e\u304b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">1.3 \u4e26\u5217\u51e6\u7406\u3067\u5f97\u3089\u308c\u308b3\u3064\u306e\u30e1\u30ea\u30c3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\uff12\uff0eJava\u306e\u4e26\u5217\u51e6\u7406\u30e1\u30ab\u30cb\u30ba\u30e0<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">2.1 \u30b9\u30ec\u30c3\u30c9\u3068\u30d7\u30ed\u30bb\u30b9\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b<\/a>      <\/li>      <li>        <a href=\"#i-12\">2.2 \u30b9\u30ec\u30c3\u30c9\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u3068\u72b6\u614b\u9077\u79fb<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-14\">2.3 \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u3068\u306f\u4f55\u304b\uff1f\u5177\u4f53\u4f8b\u3067\u5b66\u3076<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-18\">\uff13\uff0e7\u3064\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3068\u4f7f\u3044\u5206\u3051<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-19\">3.1 Thread\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u305f\u57fa\u672c\u5b9f\u88c5<\/a>      <\/li>      <li>        <a href=\"#i-22\">3.2 Runnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u3088\u308b\u5b9f\u88c5<\/a>      <\/li>      <li>        <a href=\"#i-23\">3.3 ExecutorService\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6d3b\u7528<\/a>      <\/li>      <li>        <a href=\"#i-25\">3.4 Fork\/Join\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u3088\u308b\u52b9\u7387\u7684\u306a\u4e26\u5217\u51e6\u7406<\/a>      <\/li>      <li>        <a href=\"#i-26\">3.5 CompletableFuture\u3092\u4f7f\u3063\u305f\u975e\u540c\u671f\u51e6\u7406<\/a>      <\/li>      <li>        <a href=\"#i-27\">3.6 ParallelStream\u306b\u3088\u308b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u51e6\u7406<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-28\">3.7 Virtual Threads\u306b\u3088\u308b\u6700\u65b0\u306e\u5b9f\u88c5\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-29\">\uff14\uff0e\u4e26\u5217\u51e6\u7406\u306e\u554f\u984c\u70b9\u3068\u5bfe\u7b56<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-30\">4.1 \u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u306e\u4e88\u9632\u3068\u691c\u51fa\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-33\">4.2 \u7af6\u5408\u72b6\u614b\u3092\u56de\u907f\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-36\">4.3 \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-39\">\uff15\uff0e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-40\">5.1 \u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u6700\u9069\u306a\u30b5\u30a4\u30ba\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-44\">5.2 \u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u7279\u5b9a\u306e\u305f\u3081\u306e\u8a08\u6e2c\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-48\">5.3 \u5b9f\u8df5\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u4e8b\u4f8b<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-52\">\u307e\u3068\u3081<\/a>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">\u306f\u3058\u3081\u306b<\/h2>\n<\/div>\n\n\n<p>\u8fd1\u5e74\u306e\u30b7\u30b9\u30c6\u30e0\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u306f\u907f\u3051\u3066\u306f\u901a\u308c\u306a\u3044\u91cd\u8981\u306a\u30b9\u30ad\u30eb\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u7279\u306b\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u3084\u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593\u306e\u77ed\u7e2e\u304c\u6c42\u3081\u3089\u308c\u308b\u73fe\u4ee3\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u52b9\u7387\u7684\u306a\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u304c\u6027\u80fd\u3092\u5927\u304d\u304f\u5de6\u53f3\u3057\u307e\u3059\u3002<\/p>\n\n\n<div id=\"sgb-css-id-2\">\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Java\u306b\u304a\u3051\u308b\u4e26\u5217\u51e6\u7406\u306e\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u7684\u306a\u5b9f\u88c5\u30c6\u30af\u30cb\u30c3\u30af\u3001\u3055\u3089\u306b\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u307e\u3067\u3092\u4f53\u7cfb\u7684\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-14\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u3053\u306e\u8a18\u4e8b\u3067\u5b66\u3079\u308b\u3053\u3068<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\"><div id=\"sgb-css-id-3\">\n<p>\u25cf \u57fa\u790e\u77e5\u8b58<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-4\">\n<p>\u3000\u25cf \u4e26\u5217\u51e6\u7406\u306e\u57fa\u672c\u6982\u5ff5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-5\">\n<p>\u3000\u25cf \u5b9f\u52d9\u3067\u306e\u5fc5\u8981\u6027<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u5177\u4f53\u7684\u306a\u30e1\u30ea\u30c3\u30c8<\/p>\n\n\n<div id=\"sgb-css-id-6\">\n<p>\u25cf \u5b9f\u88c5\u624b\u6cd5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-7\">\n<p>\u3000\u25cf 7\u3064\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-8\">\n<p>\u3000\u25cf Thread\/Runnable\u306e\u4f7f\u3044\u65b9<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-9\">\n<p>\u3000\u25cf ExecutorService\u306e\u6d3b\u7528<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u6700\u65b0\u306eVirtual Threads<\/p>\n\n\n<div id=\"sgb-css-id-10\">\n<p>\u25cf \u5b9f\u8df5\u30b9\u30ad\u30eb<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-11\">\n<p>\u3000\u25cf \u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u5bfe\u7b56<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-12\">\n<p>\u3000\u25cf \u7af6\u5408\u72b6\u614b\u306e\u56de\u907f<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-13\">\n<p>\u3000\u25cf \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584<\/p>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-25\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u5f53\u8a18\u4e8b\u306e\u30dd\u30a4\u30f3\u30c8<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\"><div id=\"sgb-css-id-15\">\n<p>\u672c\u8a18\u4e8b\u306e\u7279\u5fb4\u306f\u4ee5\u4e0b\u306e3\u70b9\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-16\">\n<p>1. <strong>\u5b9f\u8df5\u7684\u306a\u30b3\u30fc\u30c9\u4f8b<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-17\">\n<p>\u3000\u25cf \u3059\u3079\u3066\u306e\u6982\u5ff5\u306b\u5bfe\u3057\u3066\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u4f8b\u3092\u63d0\u793a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-18\">\n<p>\u3000\u25cf \u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3067\u52d5\u4f5c\u3059\u308b\u5b8c\u5168\u306a\u30b3\u30fc\u30c9<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u8a73\u7d30\u306a\u30b3\u30e1\u30f3\u30c8\u4ed8\u304d\u306e\u89e3\u8aac<\/p>\n\n\n<div id=\"sgb-css-id-19\">\n<p>2. <strong>\u7cfb\u7d71\u7684\u306a\u77e5\u8b58\u306e\u6574\u7406<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-20\">\n<p>\u3000\u25cf \u57fa\u790e\u304b\u3089\u5fdc\u7528\u307e\u3067\u306e\u4f53\u7cfb\u7684\u306a\u8aac\u660e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-21\">\n<p>\u3000\u25cf \u6982\u5ff5\u9593\u306e\u95a2\u9023\u6027\u306e\u660e\u78ba\u5316<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u5b9f\u52d9\u3067\u306e\u9069\u7528\u5834\u9762\u306e\u63d0\u793a<\/p>\n\n\n<div id=\"sgb-css-id-22\">\n<p>3. <strong>\u6700\u65b0\u6280\u8853\u3078\u306e\u5bfe\u5fdc<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-23\">\n<p>\u3000\u25cf Java 21\u306eVirtual Threads\u5bfe\u5fdc<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-24\">\n<p>\u3000\u25cf \u6700\u65b0\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/p>\n<\/div>\n\n\n<p>\u3000\u25cf \u5b9f\u969b\u306e\u958b\u767a\u73fe\u5834\u3067\u306e\u6d3b\u7528\u65b9\u6cd5<\/p>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-26\">\n<p>\u305d\u308c\u3067\u306f\u3001\u4e26\u5217\u51e6\u7406\u306e\u57fa\u790e\u304b\u3089\u5b66\u3093\u3067\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-27\">\n<h2 class=\"wp-block-heading\" id=\"i-1\">\uff11\uff0e\u4e26\u5217\u51e6\u7406\u306e\u57fa\u790e\u77e5\u8b58<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-28\">\n<h3 class=\"wp-block-heading\" id=\"i-2\">1.1 \u4e26\u5217\u51e6\u7406\u3068\u306f\u4f55\u304b\uff1f\u30b7\u30f3\u30d7\u30eb\u306a\u56f3\u89e3\u3067\u7406\u89e3\u3059\u308b<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-29\">\n<p>\u4e26\u5217\u51e6\u7406\uff08Parallel Processing\uff09\u3068\u306f\u3001\u8907\u6570\u306e\u51e6\u7406\u3092\u540c\u6642\u306b\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u5168\u4f53\u306e\u51e6\u7406\u6642\u9593\u3092\u77ed\u7e2e\u3059\u308b\u624b\u6cd5\u3067\u3059\u3002\u65e5\u5e38\u751f\u6d3b\u3067\u4f8b\u3048\u308b\u3068\u3001\u4e00\u4eba\u3067\u6599\u7406\u3092\u4f5c\u308b\u5834\u5408\u3068\u3001\u8907\u6570\u4eba\u3067\u5206\u62c5\u3057\u3066\u4f5c\u308b\u5834\u5408\u306e\u9055\u3044\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-30\">\n<h4 class=\"wp-block-heading\" id=\"i-3\">\u76f4\u5217\u51e6\u7406vs\u4e26\u5217\u51e6\u7406<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u76f4\u5217\u51e6\u7406\u306e\u4f8b\npublic void serialProcessing() {\n    task1(); \/\/ \u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\n    task2(); \/\/ \u30c7\u30fc\u30bf\u306e\u52a0\u5de5\n    task3(); \/\/ \u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\n    \/\/ \u5168\u3066\u306e\u51e6\u7406\u304c\u9806\u756a\u306b\u5b9f\u884c\u3055\u308c\u308b\n}\n\n\/\/ \u4e26\u5217\u51e6\u7406\u306e\u4f8b\npublic void parallelProcessing() {\n    CompletableFuture.allOf(\n        CompletableFuture.runAsync(() -&gt; task1()), \/\/ \u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\n        CompletableFuture.runAsync(() -&gt; task2()), \/\/ \u30c7\u30fc\u30bf\u306e\u52a0\u5de5\n        CompletableFuture.runAsync(() -&gt; task3())  \/\/ \u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\n    ).join();\n    \/\/ 3\u3064\u306e\u51e6\u7406\u304c\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u308b\n}<\/pre>\n\n\n<div id=\"sgb-css-id-31\">\n<h4 class=\"wp-block-heading\" id=\"i-4\">\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u884c\u30e2\u30c7\u30eb<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-32\">\n<p>\u30001. \u30bf\u30b9\u30af\u5206\u5272\uff08Task Partitioning\uff09<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-33\">\n<p>\u3000\u3000\u25cf \u5927\u304d\u306a\u51e6\u7406\u3092\u5c0f\u3055\u306a\u72ec\u7acb\u3057\u305f\u30bf\u30b9\u30af\u306b\u5206\u5272<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-34\">\n<p>\u3000\u3000\u25cf \u5404\u30bf\u30b9\u30af\u306f\u4e26\u884c\u3057\u3066\u5b9f\u884c\u53ef\u80fd<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-35\">\n<p>\u30002. \u30c7\u30fc\u30bf\u5206\u5272\uff08Data Partitioning\uff09<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-36\">\n<p>\u3000\u3000\u25cf \u5927\u304d\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u5c0f\u3055\u306a\u90e8\u5206\u306b\u5206\u5272<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-37\">\n<p>\u3000\u3000\u25cf \u5404\u90e8\u5206\u3092\u7570\u306a\u308b\u30b9\u30ec\u30c3\u30c9\u3067\u51e6\u7406<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-38\">\n<h3 class=\"wp-block-heading\" id=\"i-5\">1.2 \u306a\u305cJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u4e26\u5217\u51e6\u7406\u304c\u5fc5\u8981\u306a\u306e\u304b<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-39\">\n<p>\u73fe\u4ee3\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u4e26\u5217\u51e6\u7406\u306f\u4ee5\u4e0b\u306e\u8981\u56e0\u304b\u3089\u5fc5\u8981\u4e0d\u53ef\u6b20\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-40\">\n<p>\u30001. \u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306e\u9032\u5316<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-41\">\n<p>\u3000\u3000\u25cf \u30de\u30eb\u30c1\u30b3\u30a2\u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u666e\u53ca<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-42\">\n<p>\u3000\u3000\u25cf \u5358\u4e00\u30b3\u30a2\u306e\u6027\u80fd\u5411\u4e0a\u306e\u9650\u754c<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-43\">\n<p>\u30002. \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u4ef6<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-44\">\n<p>\u3000\u3000\u25cf \u5927\u898f\u6a21\u30c7\u30fc\u30bf\u51e6\u7406\u306e\u9700\u8981\u5897\u52a0<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-45\">\n<p>\u3000\u3000\u25cf \u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u51e6\u7406\u306e\u8981\u6c42<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-46\">\n<p>\u3000\u3000\u25cf \u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593\u306e\u77ed\u7e2e\u8981\u6c42<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-47\">\n<p>\u30003. \u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u52b9\u7387\u7684\u306a\u6d3b\u7528<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \/\/ \u30b7\u30f3\u30b0\u30eb\u30b9\u30ec\u30c3\u30c9\u3067\u306e\u51e6\u7406\n   public void processList(List&lt;Data&gt; dataList) {\n       dataList.forEach(data -&gt; processData(data));\n       \/\/ CPU\u306e1\u30b3\u30a2\u3057\u304b\u4f7f\u7528\u3055\u308c\u306a\u3044\n   }\n\n   \/\/ \u4e26\u5217\u51e6\u7406\u306b\u3088\u308b\u52b9\u7387\u5316\n   public void processListParallel(List&lt;Data&gt; dataList) {\n       dataList.parallelStream()\n               .forEach(data -&gt; processData(data));\n       \/\/ \u5229\u7528\u53ef\u80fd\u306a\u5168\u3066\u306eCPU\u30b3\u30a2\u3092\u6d3b\u7528\n   }<\/pre>\n\n\n<div id=\"sgb-css-id-48\">\n<h3 class=\"wp-block-heading\" id=\"i-6\">1.3 \u4e26\u5217\u51e6\u7406\u3067\u5f97\u3089\u308c\u308b3\u3064\u306e\u30e1\u30ea\u30c3\u30c8<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-49\">\n<h4 class=\"wp-block-heading\" id=\"i-7\">1. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5411\u4e0a<\/h4>\n<\/div>\n\n<div id=\"id-3205af6c-146b-4319-806e-c1b90f12f9e9\"><div id=\"sgb-css-id-50\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u51e6\u7406\u5185\u5bb9<\/th><th>\u30b7\u30f3\u30b0\u30eb\u30b9\u30ec\u30c3\u30c9<\/th><th>\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9<\/th><th>\u6539\u5584\u7387<\/th><\/tr><\/thead><tbody><tr><td>100\u4e07\u4ef6\u306e\u30c7\u30fc\u30bf\u51e6\u7406<\/td><td>10\u79d2<\/td><td>2.5\u79d2<\/td><td>75%<\/td><\/tr><tr><td>\u753b\u50cf\u5909\u63db\u51e6\u7406<\/td><td>30\u79d2<\/td><td>8\u79d2<\/td><td>73%<\/td><\/tr><tr><td>\u30d0\u30c3\u30c1\u51e6\u7406<\/td><td>60\u5206<\/td><td>15\u5206<\/td><td>75%<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-51\">\n<h4 class=\"wp-block-heading\" id=\"i-8\">2. \u30ea\u30bd\u30fc\u30b9\u5229\u7528\u52b9\u7387\u306e\u6700\u9069\u5316<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-52\">\n<p>\u3000\u25cf CPU\u4f7f\u7528\u7387\u306e\u5411\u4e0a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-53\">\n<p>\u3000\u25cf I\/O\u5f85\u3061\u6642\u9593\u306e\u6709\u52b9\u6d3b\u7528<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-54\">\n<p>\u3000\u25cf \u30e1\u30e2\u30ea\u4f7f\u7528\u306e\u52b9\u7387\u5316<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ I\/O\u5f85\u3061\u6642\u9593\u306e\u6709\u52b9\u6d3b\u7528\u4f8b\npublic class ResourceEfficiencyExample {\n    public void processWithIO() {\n        CompletableFuture.supplyAsync(() -&gt; readFromDatabase())    \/\/ I\/O\u64cd\u4f5c\n                .thenAcceptAsync(data -&gt; processData(data))        \/\/ CPU\u51e6\u7406\n                .thenRunAsync(() -&gt; saveToFile());                 \/\/ I\/O\u64cd\u4f5c\n        \/\/ I\/O\u5f85\u3061\u6642\u9593\u4e2d\u306b\u4ed6\u306e\u51e6\u7406\u3092\u5b9f\u884c\u53ef\u80fd\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-55\">\n<h4 class=\"wp-block-heading\" id=\"i-9\">3. \u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u306e\u5411\u4e0a<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-56\">\n<p>\u3000\u25cf \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5fdc\u7b54\u6027\u5411\u4e0a<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-57\">\n<p>\u3000\u25cf \u51e6\u7406\u306e\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u5316<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-58\">\n<p>\u3000\u25cf UI\u64cd\u4f5c\u306e\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\u9632\u6b62<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ JavaFX\u3067\u306e\u975e\u540c\u671f\u51e6\u7406\u4f8b\npublic class UIResponsivenessExample {\n    public void handleLongProcess() {\n        Task&lt;Result&gt; task = new Task&lt;&gt;() {\n            @Override\n            protected Result call() throws Exception {\n                return performLongRunningOperation();\n            }\n        };\n\n        task.setOnSucceeded(event -&gt; updateUI(task.getValue()));\n        new Thread(task).start();\n        \/\/ UI\u64cd\u4f5c\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u306a\u3044\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-59\">\n<p>\u3053\u308c\u3089\u306e\u30e1\u30ea\u30c3\u30c8\u306f\u3001\u9069\u5207\u306a\u5b9f\u88c5\u3092\u884c\u3046\u3053\u3068\u3067\u6700\u5927\u9650\u306b\u5f15\u304d\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001Java\u306b\u304a\u3051\u308b\u4e26\u5217\u51e6\u7406\u306e\u5177\u4f53\u7684\u306a\u30e1\u30ab\u30cb\u30ba\u30e0\u306b\u3064\u3044\u3066\u5b66\u3093\u3067\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-60\">\n<h2 class=\"wp-block-heading\" id=\"i-10\">\uff12\uff0eJava\u306e\u4e26\u5217\u51e6\u7406\u30e1\u30ab\u30cb\u30ba\u30e0<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-61\">\n<h3 class=\"wp-block-heading\" id=\"i-11\">2.1 \u30b9\u30ec\u30c3\u30c9\u3068\u30d7\u30ed\u30bb\u30b9\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-62\">\n<p>\u30b9\u30ec\u30c3\u30c9\u3068\u30d7\u30ed\u30bb\u30b9\u306f\u4e26\u5217\u51e6\u7406\u306e\u57fa\u672c\u5358\u4f4d\u3067\u3059\u304c\u3001\u305d\u306e\u7279\u6027\u306f\u5927\u304d\u304f\u7570\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-66\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u30d7\u30ed\u30bb\u30b9\u306e\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-63\">\n<li>\u72ec\u7acb\u3057\u305f\u30e1\u30e2\u30ea\u7a7a\u9593<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-64\">\n<li>\u72ec\u81ea\u306e\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-65\">\n<li>OS \u30ec\u30d9\u30eb\u3067\u306e\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0<\/li>\n<\/div>\n\n\n<li>\u4ed6\u306e\u30d7\u30ed\u30bb\u30b9\u3068\u306e\u901a\u4fe1\u306bIPC\u304c\u5fc5\u8981<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u30b9\u30ec\u30c3\u30c9\u306e\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-67\">\n<li>\u30d7\u30ed\u30bb\u30b9\u5185\u3067\u306e\u30e1\u30e2\u30ea\u5171\u6709<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-68\">\n<li>\u8efd\u91cf\u306a\u5b9f\u884c\u5358\u4f4d<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-69\">\n<li>\u30b9\u30ec\u30c3\u30c9\u9593\u3067\u306e\u5bb9\u6613\u306a\u30c7\u30fc\u30bf\u5171\u6709<\/li>\n<\/div>\n\n\n<li>\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30b9\u30a4\u30c3\u30c1\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u5c0f\u3055\u3044<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d7\u30ed\u30bb\u30b9\u751f\u6210\u306e\u4f8b\npublic class ProcessExample {\n    public void createNewProcess() throws IOException {\n        \/\/ \u65b0\u3057\u3044\u30d7\u30ed\u30bb\u30b9\u3092\u8d77\u52d5\n        ProcessBuilder builder = new ProcessBuilder(\"java\", \"-jar\", \"app.jar\");\n        Process process = builder.start();\n\n        \/\/ \u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1\uff08\u6a19\u6e96\u51fa\u529b\u306e\u8aad\u307f\u53d6\u308a\uff09\n        try (BufferedReader reader = new BufferedReader(\n                new InputStreamReader(process.getInputStream()))) {\n            String line;\n            while ((line = reader.readLine()) != null) {\n                System.out.println(line);\n            }\n        }\n    }\n}\n\n\/\/ \u30b9\u30ec\u30c3\u30c9\u751f\u6210\u306e\u4f8b\npublic class ThreadExample {\n    public void createNewThread() {\n        \/\/ \u5171\u6709\u30c7\u30fc\u30bf\n        SharedData data = new SharedData();\n\n        \/\/ \u65b0\u3057\u3044\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\n        Thread thread = new Thread(() -&gt; {\n            data.process(); \/\/ \u540c\u3058\u30d7\u30ed\u30bb\u30b9\u5185\u306e\u30c7\u30fc\u30bf\u306b\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\n        });\n        thread.start();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-70\">\n<h3 class=\"wp-block-heading\" id=\"i-12\">2.2 \u30b9\u30ec\u30c3\u30c9\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u3068\u72b6\u614b\u9077\u79fb<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-71\">\n<p>Java\u306e\u30b9\u30ec\u30c3\u30c9\u306f\u3001\u4ee5\u4e0b\u306e\u72b6\u614b\u3092\u9077\u79fb\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-72\">\n<p>\u3000<strong>1. NEW<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-73\">\n<p>\u3000\u3000\u25cf \u30b9\u30ec\u30c3\u30c9\u304c\u4f5c\u6210\u3055\u308c\u305f\u304c\u3001\u307e\u3060\u958b\u59cb\u3055\u308c\u3066\u3044\u306a\u3044\u72b6\u614b<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   Thread thread = new Thread(() -&gt; System.out.println(\"New Thread\"));\n   \/\/ \u3053\u306e\u6642\u70b9\u3067NEW\u72b6\u614b<\/pre>\n\n\n<div id=\"sgb-css-id-74\">\n<p>\u3000<strong>2. RUNNABLE<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-75\">\n<p>\u3000\u3000\u25cf \u5b9f\u884c\u53ef\u80fd\u306a\u72b6\u614b\uff08\u5b9f\u884c\u4e2d\u307e\u305f\u306f\u5b9f\u884c\u5f85\u3061\uff09<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   thread.start(); \/\/ RUNNABLE\u306b\u9077\u79fb<\/pre>\n\n\n<div id=\"sgb-css-id-76\">\n<p>\u3000<strong>3. BLOCKED<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-77\">\n<p>\u3000\u3000\u25cf \u540c\u671f\u30d6\u30ed\u30c3\u30af\u306e\u30ed\u30c3\u30af\u53d6\u5f97\u5f85\u3061<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   synchronized(lockObject) {\n       \/\/ \u4ed6\u306e\u30b9\u30ec\u30c3\u30c9\u304clockObject\u3092\u30ed\u30c3\u30af\u4e2d\u306e\u5834\u5408\u3001BLOCKED\u72b6\u614b\u306b\u9077\u79fb\n   }<\/pre>\n\n\n<div id=\"sgb-css-id-78\">\n<p>\u3000<strong>4. WAITING<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-79\">\n<p>\u3000\u3000\u25cf \u4ed6\u306e\u30b9\u30ec\u30c3\u30c9\u304b\u3089\u306e\u901a\u77e5\u5f85\u3061<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \/\/ \u7121\u671f\u9650\u5f85\u6a5f\n   object.wait();\n   thread.join();<\/pre>\n\n\n<div id=\"sgb-css-id-80\">\n<p>\u3000<strong>5. TIMED_WAITING<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-81\">\n<p>\u3000\u3000\u25cf \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u4ed8\u304d\u306e\u5f85\u6a5f<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \/\/ \u6307\u5b9a\u6642\u9593\u306e\u5f85\u6a5f\n   Thread.sleep(1000);\n   object.wait(1000);<\/pre>\n\n\n<div id=\"sgb-css-id-82\">\n<p>\u3000<strong>6. TERMINATED<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-83\">\n<p>\u3000\u3000\u25cf \u5b9f\u884c\u7d42\u4e86<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \/\/ run()\u30e1\u30bd\u30c3\u30c9\u306e\u7d42\u4e86\u5f8c<\/pre>\n\n\n<div id=\"sgb-css-id-84\">\n<h4 class=\"wp-block-heading\" id=\"i-13\">\u72b6\u614b\u9077\u79fb\u306e\u76e3\u8996\u4f8b<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadStateMonitor {\n    public void monitorThread(Thread target) {\n        new Thread(() -&gt; {\n            Thread.State oldState = null;\n            while (true) {\n                Thread.State state = target.getState();\n                if (state != oldState) {\n                    System.out.println(\"Thread state changed: \" + state);\n                    oldState = state;\n                }\n                if (state == Thread.State.TERMINATED) {\n                    break;\n                }\n                try {\n                    Thread.sleep(100);\n                } catch (InterruptedException e) {\n                    break;\n                }\n            }\n        }).start();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-85\">\n<h3 class=\"wp-block-heading\" id=\"i-14\">2.3 \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u3068\u306f\u4f55\u304b\uff1f\u5177\u4f53\u4f8b\u3067\u5b66\u3076<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-86\">\n<p>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u3068\u306f\u3001\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u304c\u540c\u6642\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3082\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u3053\u3068\u3092\u6307\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-87\">\n<h4 class=\"wp-block-heading\" id=\"i-15\">\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u3067\u306f\u306a\u3044\u5b9f\u88c5<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class UnsafeCounter {\n    private int count = 0;\n\n    public void increment() {\n        count++; \/\/ \u8907\u6570\u30b9\u30ec\u30c3\u30c9\u306b\u3088\u308b\u540c\u6642\u30a2\u30af\u30bb\u30b9\u3067\u5024\u304c\u4e0d\u6b63\u78ba\u306b\u306a\u308b\u53ef\u80fd\u6027\n    }\n\n    public int getCount() {\n        return count;\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-88\">\n<h4 class=\"wp-block-heading\" id=\"i-16\">\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-89\">\n<p>\u30001. <strong>\u540c\u671f\u5316\u306b\u3088\u308b\u65b9\u6cd5<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class SynchronizedCounter {\n    private int count = 0;\n\n    public synchronized void increment() {\n        count++;\n    }\n\n    public synchronized int getCount() {\n        return count;\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-90\">\n<p>\u30002. <strong>Atomic\u5909\u6570\u306e\u4f7f\u7528<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AtomicCounter {\n    private AtomicInteger count = new AtomicInteger(0);\n\n    public void increment() {\n        count.incrementAndGet();\n    }\n\n    public int getCount() {\n        return count.get();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-91\">\n<p>\u30003. <strong>\u4e0d\u5909\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u6d3b\u7528<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public final class ImmutableValue {\n    private final int value;\n\n    public ImmutableValue(int value) {\n        this.value = value;\n    }\n\n    public ImmutableValue increment() {\n        return new ImmutableValue(value + 1); \/\/ \u65b0\u3057\u3044\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u8fd4\u3059\n    }\n\n    public int getValue() {\n        return value;\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-92\">\n<p>\u30004. <strong>Volatile\u306e\u4f7f\u7528\uff08\u53ef\u8996\u6027\u306e\u4fdd\u8a3c\uff09<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class VolatileFlag {\n    private volatile boolean flag = false;\n\n    public void setFlag(boolean flag) {\n        this.flag = flag;\n    }\n\n    public boolean isFlag() {\n        return flag;\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-93\">\n<h4 class=\"wp-block-heading\" id=\"i-17\">\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u6027\u306e\u691c\u8a3c\u65b9\u6cd5<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadSafetyTester {\n    public static void testCounter(Counter counter) {\n        int numThreads = 10;\n        int incrementsPerThread = 1000;\n\n        List&lt;Thread&gt; threads = new ArrayList&lt;&gt;();\n        for (int i = 0; i &lt; numThreads; i++) {\n            Thread t = new Thread(() -&gt; {\n                for (int j = 0; j &lt; incrementsPerThread; j++) {\n                    counter.increment();\n                }\n            });\n            threads.add(t);\n            t.start();\n        }\n\n        \/\/ \u3059\u3079\u3066\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u5b8c\u4e86\u3092\u5f85\u3064\n        threads.forEach(t -&gt; {\n            try {\n                t.join();\n            } catch (InterruptedException e) {\n                e.printStackTrace();\n            }\n        });\n\n        \/\/ \u671f\u5f85\u5024\u3068\u306e\u6bd4\u8f03\n        int expectedCount = numThreads * incrementsPerThread;\n        int actualCount = counter.getCount();\n        System.out.println(\"\u671f\u5f85\u5024: \" + expectedCount);\n        System.out.println(\"\u5b9f\u969b\u306e\u5024: \" + actualCount);\n        System.out.println(\"\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5: \" + (expectedCount == actualCount));\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-94\">\n<p>\u4ee5\u4e0a\u304c\u4e26\u5217\u51e6\u7406\u306e\u30e1\u30ab\u30cb\u30ba\u30e0\u306e\u57fa\u672c\u3068\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u77e5\u8b58\u3092\u6d3b\u7528\u3057\u305f\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-95\">\n<h2 class=\"wp-block-heading\" id=\"i-18\">\uff13\uff0e7\u3064\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3068\u4f7f\u3044\u5206\u3051<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-96\">\n<h3 class=\"wp-block-heading\" id=\"i-19\">3.1 Thread\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u305f\u57fa\u672c\u5b9f\u88c5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-97\">\n<p>Thread\u30af\u30e9\u30b9\u306f\u4e26\u5217\u51e6\u7406\u306e\u6700\u3082\u57fa\u672c\u7684\u306a\u5b9f\u88c5\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-98\">\n<h4 class=\"wp-block-heading\" id=\"i-20\">\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BasicThreadExample {\n    public static void main(String[] args) {\n        \/\/ Thread\u7d99\u627f\u306b\u3088\u308b\u5b9f\u88c5\n        Thread thread1 = new Thread() {\n            @Override\n            public void run() {\n                System.out.println(\"Thread 1 is running\");\n            }\n        };\n\n        thread1.start();\n\n        \/\/ \u3088\u308a\u30b7\u30f3\u30d7\u30eb\u306a\u30e9\u30e0\u30c0\u5f0f\u306b\u3088\u308b\u5b9f\u88c5\n        Thread thread2 = new Thread(() -&gt; \n            System.out.println(\"Thread 2 is running\")\n        );\n\n        thread2.start();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-99\">\n<h4 class=\"wp-block-heading\" id=\"i-21\">\u30b9\u30ec\u30c3\u30c9\u5236\u5fa1\u306e\u57fa\u672c\u64cd\u4f5c<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadControlExample {\n    public void demonstrateThreadControl() {\n        Thread thread = new Thread(() -&gt; {\n            try {\n                System.out.println(\"\u51e6\u7406\u958b\u59cb\");\n                Thread.sleep(1000); \/\/ 1\u79d2\u5f85\u6a5f\n                System.out.println(\"\u51e6\u7406\u7d42\u4e86\");\n            } catch (InterruptedException e) {\n                System.out.println(\"\u4e2d\u65ad\u3055\u308c\u307e\u3057\u305f\");\n            }\n        });\n\n        thread.start();           \/\/ \u30b9\u30ec\u30c3\u30c9\u958b\u59cb\n        thread.interrupt();       \/\/ \u30b9\u30ec\u30c3\u30c9\u4e2d\u65ad\n        thread.setName(\"Worker\"); \/\/ \u30b9\u30ec\u30c3\u30c9\u540d\u8a2d\u5b9a\n        thread.setPriority(Thread.MAX_PRIORITY); \/\/ \u512a\u5148\u5ea6\u8a2d\u5b9a\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-102\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-100\">\n<li>\u30b7\u30f3\u30d7\u30eb\u306a\u975e\u540c\u671f\u51e6\u7406<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-101\">\n<li>\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u51e6\u7406<\/li>\n<\/div>\n\n\n<li>\u5b9a\u671f\u7684\u306a\u30bf\u30b9\u30af\u5b9f\u884c<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-103\">\n<h3 class=\"wp-block-heading\" id=\"i-22\">3.2 Runnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u3088\u308b\u5b9f\u88c5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-104\">\n<p>Runnable\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306f\u3001\u3088\u308a\u67d4\u8edf\u306a\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class RunnableExample {\n    \/\/ \u30bf\u30b9\u30af\u306e\u5b9a\u7fa9\n    public class Task implements Runnable {\n        private final String name;\n\n        public Task(String name) {\n            this.name = name;\n        }\n\n        @Override\n        public void run() {\n            System.out.println(name + \" is running\");\n        }\n    }\n\n    public void executeTask() {\n        \/\/ \u8907\u6570\u306e\u65b9\u6cd5\u3067Runnable\u3092\u5b9f\u884c\n        Runnable task1 = new Task(\"Task 1\");\n        Thread thread1 = new Thread(task1);\n        thread1.start();\n\n        \/\/ \u30e9\u30e0\u30c0\u5f0f\u306b\u3088\u308b\u5b9f\u88c5\n        Runnable task2 = () -&gt; System.out.println(\"Task 2 is running\");\n        new Thread(task2).start();\n\n        \/\/ \u533f\u540d\u30af\u30e9\u30b9\u306b\u3088\u308b\u5b9f\u88c5\n        new Thread(new Runnable() {\n            @Override\n            public void run() {\n                System.out.println(\"Task 3 is running\");\n            }\n        }).start();\n    }\n}<\/pre>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:#009EF3;color:#FFF\" class=\"sgb-box-simple__title\">\u30e1\u30ea\u30c3\u30c8<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:#009EF3;background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-105\">\n<li>\u7d99\u627f\u306e\u5236\u9650\u3092\u56de\u907f\u3067\u304d\u308b<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-106\">\n<li>\u30bf\u30b9\u30af\u3068\u30b9\u30ec\u30c3\u30c9\u306e\u5206\u96e2<\/li>\n<\/div>\n\n\n<li>\u518d\u5229\u7528\u6027\u306e\u5411\u4e0a<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n<div id=\"sgb-css-id-107\">\n<h3 class=\"wp-block-heading\" id=\"i-23\">3.3 ExecutorService\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6d3b\u7528<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-108\">\n<p>ExecutorService\u306f\u3001\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u305f\u52b9\u7387\u7684\u306a\u4e26\u5217\u51e6\u7406\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ExecutorServiceExample {\n    public void demonstrateExecutorService() {\n        \/\/ \u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u4f5c\u6210\n        ExecutorService executor = Executors.newFixedThreadPool(4);\n\n        try {\n            \/\/ \u5358\u4e00\u30bf\u30b9\u30af\u306e\u5b9f\u884c\n            executor.execute(() -&gt; System.out.println(\"Simple task\"));\n\n            \/\/ \u623b\u308a\u5024\u306e\u3042\u308b\u51e6\u7406\n            Future&lt;String&gt; future = executor.submit(() -&gt; {\n                Thread.sleep(1000);\n                return \"Task completed\";\n            });\n\n            \/\/ \u8907\u6570\u30bf\u30b9\u30af\u306e\u4e00\u62ec\u5b9f\u884c\n            List&lt;Callable&lt;Integer&gt;&gt; tasks = Arrays.asList(\n                () -&gt; processData(\"Task 1\"),\n                () -&gt; processData(\"Task 2\"),\n                () -&gt; processData(\"Task 3\")\n            );\n\n            List&lt;Future&lt;Integer&gt;&gt; results = executor.invokeAll(tasks);\n            for (Future&lt;Integer&gt; result : results) {\n                System.out.println(\"Result: \" + result.get());\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        } finally {\n            \/\/ \u30d7\u30fc\u30eb\u306e\u7d42\u4e86\u51e6\u7406\n            executor.shutdown();\n            try {\n                if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {\n                    executor.shutdownNow();\n                }\n            } catch (InterruptedException e) {\n                executor.shutdownNow();\n            }\n        }\n    }\n\n    private int processData(String taskName) {\n        \/\/ \u51e6\u7406\u306e\u5b9f\u88c5\n        return taskName.length();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-109\">\n<h4 class=\"wp-block-heading\" id=\"i-24\">\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u7a2e\u985e\u3068\u7279\u5fb4<\/h4>\n<\/div>\n\n<div id=\"id-0be1c800-6d43-489d-ac37-20fff56d2b15\"><div id=\"sgb-css-id-110\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30d7\u30fc\u30eb\u30bf\u30a4\u30d7<\/th><th>\u4f5c\u6210\u65b9\u6cd5<\/th><th>\u7279\u5fb4<\/th><th>\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td><code>Fixed<\/code><\/td><td>newFixedThreadPool(n)<\/td><td>\u56fa\u5b9a\u6570\u306e\u30b9\u30ec\u30c3\u30c9<\/td><td>\u8ca0\u8377\u304c\u5b89\u5b9a\u3057\u3066\u3044\u308b\u51e6\u7406<\/td><\/tr><tr><td><code>Cached<\/code><\/td><td>newCachedThreadPool()<\/td><td>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u62e1\u5927\u7e2e\u5c0f<\/td><td>\u77ed\u6642\u9593\u306e\u591a\u6570\u306e\u30bf\u30b9\u30af<\/td><\/tr><tr><td><code>Scheduled<\/code><\/td><td>newScheduledThreadPool(n)<\/td><td>\u5b9a\u671f\u5b9f\u884c\u304c\u53ef\u80fd<\/td><td>\u5b9a\u671f\u7684\u306a\u30bf\u30b9\u30af\u5b9f\u884c<\/td><\/tr><tr><td><code>Single<\/code><\/td><td>newSingleThreadExecutor()<\/td><td>\u5358\u4e00\u30b9\u30ec\u30c3\u30c9<\/td><td>\u9806\u5e8f\u6027\u304c\u91cd\u8981\u306a\u51e6\u7406<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-111\">\n<h3 class=\"wp-block-heading\" id=\"i-25\">3.4 Fork\/Join\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u3088\u308b\u52b9\u7387\u7684\u306a\u4e26\u5217\u51e6\u7406<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-112\">\n<p>Fork\/Join\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u5206\u5272\u7d71\u6cbb\u6cd5\u306b\u3088\u308b\u4e26\u5217\u51e6\u7406\u3092\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ForkJoinExample extends RecursiveTask&lt;Long&gt; {\n    private final long[] numbers;\n    private final int start;\n    private final int end;\n    private final int THRESHOLD = 10_000;\n\n    public ForkJoinExample(long[] numbers, int start, int end) {\n        this.numbers = numbers;\n        this.start = start;\n        this.end = end;\n    }\n\n    @Override\n    protected Long compute() {\n        int length = end - start;\n        if (length &lt;= THRESHOLD) {\n            return computeDirectly();\n        }\n\n        int middle = start + length \/ 2;\n\n        ForkJoinExample leftTask = new ForkJoinExample(numbers, start, middle);\n        leftTask.fork();\n\n        ForkJoinExample rightTask = new ForkJoinExample(numbers, middle, end);\n        Long rightResult = rightTask.compute();\n        Long leftResult = leftTask.join();\n\n        return leftResult + rightResult;\n    }\n\n    private long computeDirectly() {\n        long sum = 0;\n        for (int i = start; i &lt; end; i++) {\n            sum += numbers[i];\n        }\n        return sum;\n    }\n\n    \/\/ \u4f7f\u7528\u4f8b\n    public static void main(String[] args) {\n        long[] numbers = new long[1_000_000];\n        Arrays.fill(numbers, 1);\n\n        ForkJoinPool pool = new ForkJoinPool();\n        ForkJoinExample task = new ForkJoinExample(numbers, 0, numbers.length);\n        long sum = pool.invoke(task);\n\n        System.out.println(\"Sum: \" + sum);\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-113\">\n<h3 class=\"wp-block-heading\" id=\"i-26\">3.5 CompletableFuture\u3092\u4f7f\u3063\u305f\u975e\u540c\u671f\u51e6\u7406<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-114\">\n<p>CompletableFuture\u306f\u3001\u975e\u540c\u671f\u51e6\u7406\u306e\u7d44\u307f\u5408\u308f\u305b\u3068\u5236\u5fa1\u3092\u5bb9\u6613\u306b\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CompletableFutureExample {\n    public void demonstrateCompletableFuture() {\n        \/\/ \u975e\u540c\u671f\u51e6\u7406\u306e\u9023\u9396\n        CompletableFuture.supplyAsync(() -&gt; {\n            return fetchData(); \/\/ \u30c7\u30fc\u30bf\u53d6\u5f97\n        }).thenApplyAsync(data -&gt; {\n            return processData(data); \/\/ \u30c7\u30fc\u30bf\u51e6\u7406\n        }).thenAcceptAsync(result -&gt; {\n            saveResult(result); \/\/ \u7d50\u679c\u4fdd\u5b58\n        }).exceptionally(throwable -&gt; {\n            handleError(throwable); \/\/ \u30a8\u30e9\u30fc\u51e6\u7406\n            return null;\n        });\n\n        \/\/ \u8907\u6570\u306e\u975e\u540c\u671f\u51e6\u7406\u306e\u7d44\u307f\u5408\u308f\u305b\n        CompletableFuture&lt;String&gt; future1 = CompletableFuture.supplyAsync(\n            () -&gt; \"Hello\"\n        );\n        CompletableFuture&lt;String&gt; future2 = CompletableFuture.supplyAsync(\n            () -&gt; \"World\"\n        );\n\n        CompletableFuture&lt;String&gt; combined = future1.thenCombine(\n            future2,\n            (s1, s2) -&gt; s1 + \" \" + s2\n        );\n    }\n\n    private String fetchData() { return \"data\"; }\n    private String processData(String data) { return \"processed \" + data; }\n    private void saveResult(String result) { }\n    private void handleError(Throwable t) { }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-115\">\n<h3 class=\"wp-block-heading\" id=\"i-27\">3.6 ParallelStream\u306b\u3088\u308b\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u51e6\u7406<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-116\">\n<p>ParallelStream\u306f\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u4e26\u5217\u51e6\u7406\u3092\u7c21\u6f54\u306b\u8a18\u8ff0\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ParallelStreamExample {\n    public void demonstrateParallelStream() {\n        List&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);\n\n        \/\/ \u4e26\u5217\u51e6\u7406\u306b\u3088\u308b\u5408\u8a08\u8a08\u7b97\n        int sum = numbers.parallelStream()\n                        .mapToInt(i -&gt; i)\n                        .sum();\n\n        \/\/ \u4e26\u5217\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3068\u5909\u63db\n        List&lt;String&gt; result = numbers.parallelStream()\n                                   .filter(n -&gt; n % 2 == 0)\n                                   .map(n -&gt; \"Number: \" + n)\n                                   .collect(Collectors.toList());\n\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u4e26\u5217\u51e6\u7406\n        List&lt;Integer&gt; processed = numbers.parallelStream()\n                                       .map(this::heavyProcessing)\n                                       .collect(Collectors.toList());\n    }\n\n    private Integer heavyProcessing(Integer number) {\n        try {\n            Thread.sleep(100); \/\/ \u91cd\u3044\u51e6\u7406\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\n            return number * 2;\n        } catch (InterruptedException e) {\n            return number;\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-117\">\n<h3 class=\"wp-block-heading\" id=\"i-28\">3.7 Virtual Threads\u306b\u3088\u308b\u6700\u65b0\u306e\u5b9f\u88c5\u65b9\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-118\">\n<p>Virtual Threads\uff08Project Loom\uff09\u306f\u3001\u8efd\u91cf\u306a\u30b9\u30ec\u30c3\u30c9\u5b9f\u88c5\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class VirtualThreadExample {\n    public void demonstrateVirtualThreads() {\n        \/\/ \u5358\u4e00\u306eVirtual Thread\u4f5c\u6210\n        Thread vThread = Thread.startVirtualThread(() -&gt; {\n            System.out.println(\"Running in virtual thread\");\n        });\n\n        \/\/ \u591a\u6570\u306eVirtual Threads\u5b9f\u884c\n        List&lt;Thread&gt; threads = new ArrayList&lt;&gt;();\n        for (int i = 0; i &lt; 10_000; i++) {\n            Thread thread = Thread.startVirtualThread(() -&gt; {\n                try {\n                    Thread.sleep(100);\n                    processRequest();\n                } catch (InterruptedException e) {\n                    Thread.currentThread().interrupt();\n                }\n            });\n            threads.add(thread);\n        }\n\n        \/\/ \u3059\u3079\u3066\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u5b8c\u4e86\u3092\u5f85\u6a5f\n        threads.forEach(thread -&gt; {\n            try {\n                thread.join();\n            } catch (InterruptedException e) {\n                Thread.currentThread().interrupt();\n            }\n        });\n    }\n\n    private void processRequest() {\n        \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\n        System.out.println(\"Processing request in: \" + \n                          Thread.currentThread());\n    }\n\n    \/\/ ExecutorService\u3068\u306e\u7d71\u5408\n    public void demonstrateWithExecutor() {\n        try (ExecutorService executor = \n                 Executors.newVirtualThreadPerTaskExecutor()) {\n            \/\/ \u30bf\u30b9\u30af\u306e\u5b9f\u884c\n            Future&lt;String&gt; future = executor.submit(() -&gt; {\n                return \"Processed by virtual thread\";\n            });\n\n            System.out.println(future.get());\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-122\">\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">Virtual Threads\u306e\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ul class=\"wp-block-list\"><div id=\"sgb-css-id-119\">\n<li>\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30b9\u30ec\u30c3\u30c9\u3088\u308a\u8efd\u91cf<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-120\">\n<li>\u5927\u91cf\u306e\u30b9\u30ec\u30c3\u30c9\u4f5c\u6210\u304c\u53ef\u80fd<\/li>\n<\/div>\n\n<div id=\"sgb-css-id-121\">\n<li>I\/O\u51e6\u7406\u306b\u6700\u9069<\/li>\n<\/div>\n\n\n<li>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u304c\u4e0d\u8981<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n\n<div id=\"sgb-css-id-123\">\n<p>\u4ee5\u4e0a\u304c7\u3064\u306e\u4e3b\u8981\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u969b\u306b\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u554f\u984c\u3068\u305d\u306e\u5bfe\u7b56\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-124\">\n<h2 class=\"wp-block-heading\" id=\"i-29\">\uff14\uff0e\u4e26\u5217\u51e6\u7406\u306e\u554f\u984c\u70b9\u3068\u5bfe\u7b56<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-125\">\n<h3 class=\"wp-block-heading\" id=\"i-30\">4.1 \u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u306e\u4e88\u9632\u3068\u691c\u51fa\u65b9\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-126\">\n<p>\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u306f\u3001\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u304c\u4e92\u3044\u306e\u30ea\u30bd\u30fc\u30b9\u306e\u89e3\u653e\u3092\u5f85\u3061\u5408\u3046\u72b6\u614b\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-127\">\n<h4 class=\"wp-block-heading\" id=\"i-31\">\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u306e\u767a\u751f\u30d1\u30bf\u30fc\u30f3<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class DeadlockExample {\n    private final Object lock1 = new Object();\n    private final Object lock2 = new Object();\n\n    public void demonstrateDeadlock() {\n        Thread thread1 = new Thread(() -&gt; {\n            synchronized (lock1) {\n                System.out.println(\"Thread 1: Holding lock 1...\");\n                try {\n                    Thread.sleep(100);\n                } catch (InterruptedException e) {}\n                System.out.println(\"Thread 1: Waiting for lock 2...\");\n                synchronized (lock2) {\n                    System.out.println(\"Thread 1: Holding lock 1 &amp; 2...\");\n                }\n            }\n        });\n\n        Thread thread2 = new Thread(() -&gt; {\n            synchronized (lock2) {\n                System.out.println(\"Thread 2: Holding lock 2...\");\n                try {\n                    Thread.sleep(100);\n                } catch (InterruptedException e) {}\n                System.out.println(\"Thread 2: Waiting for lock 1...\");\n                synchronized (lock1) {\n                    System.out.println(\"Thread 2: Holding lock 1 &amp; 2...\");\n                }\n            }\n        });\n\n        thread1.start();\n        thread2.start();\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-128\">\n<h4 class=\"wp-block-heading\" id=\"i-32\">\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u4e88\u9632\u7b56<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-129\">\n<p>\u30001. <strong>\u30ed\u30c3\u30af\u9806\u5e8f\u306e\u4e00\u8cab\u6027\u7dad\u6301<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class DeadlockPrevention {\n    private final Object lock1 = new Object();\n    private final Object lock2 = new Object();\n\n    public void safeMethod() {\n        \/\/ \u5e38\u306b\u540c\u3058\u9806\u5e8f\u3067\u30ed\u30c3\u30af\u3092\u53d6\u5f97\n        synchronized (lock1) {\n            synchronized (lock2) {\n                \/\/ \u51e6\u7406\n            }\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-130\">\n<p>\u30002. <strong>\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u306e\u5c0e\u5165<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class TimeoutLocking {\n    private final ReentrantLock lock1 = new ReentrantLock();\n    private final ReentrantLock lock2 = new ReentrantLock();\n\n    public void tryWithTimeout() throws InterruptedException {\n        if (lock1.tryLock(1000, TimeUnit.MILLISECONDS)) {\n            try {\n                if (lock2.tryLock(1000, TimeUnit.MILLISECONDS)) {\n                    try {\n                        \/\/ \u51e6\u7406\n                    } finally {\n                        lock2.unlock();\n                    }\n                }\n            } finally {\n                lock1.unlock();\n            }\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-131\">\n<p>\u30003. <strong>\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u691c\u51fa\u30c4\u30fc\u30eb\u306e\u4f7f\u7528<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class DeadlockDetector {\n    public static void detectDeadlock() {\n        ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();\n        long[] threadIds = threadBean.findDeadlockedThreads();\n\n        if (threadIds != null) {\n            ThreadInfo[] threadInfos = threadBean.getThreadInfo(threadIds);\n            System.out.println(\"\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u3092\u691c\u51fa:\");\n            for (ThreadInfo info : threadInfos) {\n                System.out.println(info.getThreadName() + \n                                 \" waiting on \" + \n                                 info.getLockName());\n            }\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-132\">\n<h3 class=\"wp-block-heading\" id=\"i-33\">4.2 \u7af6\u5408\u72b6\u614b\u3092\u56de\u907f\u3059\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-133\">\n<p>\u7af6\u5408\u72b6\u614b\u306f\u3001\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u304c\u5171\u6709\u30ea\u30bd\u30fc\u30b9\u306b\u540c\u6642\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u969b\u306b\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-134\">\n<h4 class=\"wp-block-heading\" id=\"i-34\">\u4e00\u822c\u7684\u306a\u7af6\u5408\u72b6\u614b\u306e\u30d1\u30bf\u30fc\u30f3<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-135\">\n<p>\u30001. <strong>\u30c1\u30a7\u30c3\u30af\u3057\u3066\u304b\u3089\u5b9f\u884c\uff08Check-Then-Act\uff09<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u30b3\u30fc\u30c9\npublic class UnsafeCheckThenAct {\n    private Map&lt;String, String&gt; sharedMap = new HashMap&lt;&gt;();\n\n    public void updateIfAbsent(String key, String value) {\n        if (!sharedMap.containsKey(key)) {  \/\/ \u78ba\u8a8d\n            sharedMap.put(key, value);      \/\/ \u5b9f\u884c\n        }\n    }\n}\n\n\/\/ \u4fee\u6b63\u5f8c\u306e\u30b3\u30fc\u30c9\npublic class SafeCheckThenAct {\n    private ConcurrentHashMap&lt;String, String&gt; sharedMap = \n        new ConcurrentHashMap&lt;&gt;();\n\n    public void updateIfAbsent(String key, String value) {\n        sharedMap.putIfAbsent(key, value);  \/\/ \u30a2\u30c8\u30df\u30c3\u30af\u306a\u64cd\u4f5c\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-136\">\n<p>\u30002. <strong>\u8907\u5408\u64cd\u4f5c\u306e\u7af6\u5408<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u30b3\u30fc\u30c9\npublic class UnsafeCounter {\n    private int count = 0;\n\n    public void increment() {\n        count = count + 1;  \/\/ \u8aad\u307f\u53d6\u308a\u3068\u66f8\u304d\u8fbc\u307f\u304c\u5206\u96e2\u3057\u3066\u3044\u308b\n    }\n}\n\n\/\/ \u4fee\u6b63\u5f8c\u306e\u30b3\u30fc\u30c9\npublic class SafeCounter {\n    private final AtomicInteger count = new AtomicInteger(0);\n\n    public void increment() {\n        count.incrementAndGet();  \/\/ \u30a2\u30c8\u30df\u30c3\u30af\u306a\u64cd\u4f5c\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-137\">\n<h4 class=\"wp-block-heading\" id=\"i-35\">\u7af6\u5408\u72b6\u614b\u306e\u89e3\u6c7a\u7b56<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-138\">\n<p>\u30001. <strong>\u540c\u671f\u5316\u30d6\u30ed\u30c3\u30af\u306e\u9069\u5207\u306a\u4f7f\u7528<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class SynchronizationExample {\n    private final List&lt;String&gt; list = new ArrayList&lt;&gt;();\n    private final Object lock = new Object();\n\n    public void addIfNotExists(String item) {\n        synchronized (lock) {\n            if (!list.contains(item)) {\n                list.add(item);\n            }\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-139\">\n<p>\u30002. <strong>\u4e26\u884c\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u6d3b\u7528<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ConcurrentCollectionExample {\n    private final ConcurrentHashMap&lt;String, Integer&gt; map = \n        new ConcurrentHashMap&lt;&gt;();\n    private final CopyOnWriteArrayList&lt;String&gt; list = \n        new CopyOnWriteArrayList&lt;&gt;();\n\n    public void updateMap(String key) {\n        map.compute(key, (k, v) -&gt; (v == null) ? 1 : v + 1);\n    }\n\n    public void updateList(String item) {\n        list.addIfAbsent(item);\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-140\">\n<h3 class=\"wp-block-heading\" id=\"i-36\">4.3 \u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3092\u9632\u3050\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-141\">\n<p>\u4e26\u5217\u51e6\u7406\u306b\u304a\u3051\u308b\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306f\u3001\u9069\u5207\u306a\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406\u306e\u6b20\u5982\u304b\u3089\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-142\">\n<h4 class=\"wp-block-heading\" id=\"i-37\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u9632\u6b62\u306e\u30d1\u30bf\u30fc\u30f3<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-143\">\n<p>\u30001. <strong>ThreadLocal\u306e\u9069\u5207\u306a\u89e3\u653e<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadLocalExample {\n    private static final ThreadLocal&lt;ExpensiveObject&gt; threadLocal = \n        new ThreadLocal&lt;ExpensiveObject&gt;() {\n            @Override\n            protected ExpensiveObject initialValue() {\n                return new ExpensiveObject();\n            }\n        };\n\n    public void processTask() {\n        try {\n            ExpensiveObject object = threadLocal.get();\n            \/\/ \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u305f\u51e6\u7406\n        } finally {\n            threadLocal.remove();  \/\/ \u91cd\u8981: ThreadLocal\u306e\u5024\u3092\u89e3\u653e\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-144\">\n<p>\u30002. <strong>ExecutorService\u306e\u9069\u5207\u306a\u30b7\u30e3\u30c3\u30c8\u30c0\u30a6\u30f3<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ExecutorShutdownExample {\n    private final ExecutorService executor = \n        Executors.newFixedThreadPool(10);\n\n    public void shutdown() {\n        try {\n            executor.shutdown();\n            if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {\n                executor.shutdownNow();\n                if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {\n                    System.err.println(\"ExecutorService did not terminate\");\n                }\n            }\n        } catch (InterruptedException ie) {\n            executor.shutdownNow();\n            Thread.currentThread().interrupt();\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-145\">\n<p>\u30003. <strong>\u30ea\u30bd\u30fc\u30b9\u30af\u30ed\u30fc\u30ba\u306e\u4fdd\u8a3c<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ResourceManagementExample {\n    public void processWithResources() {\n        CountDownLatch latch = new CountDownLatch(1);\n        ExecutorService executor = Executors.newFixedThreadPool(1);\n\n        try {\n            Future&lt;?&gt; future = executor.submit(() -&gt; {\n                try {\n                    \/\/ \u30ea\u30bd\u30fc\u30b9\u3092\u4f7f\u7528\u3059\u308b\u51e6\u7406\n                } finally {\n                    latch.countDown();\n                }\n            });\n\n            \/\/ \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u4ed8\u304d\u3067\u5f85\u6a5f\n            if (!latch.await(10, TimeUnit.SECONDS)) {\n                future.cancel(true);\n                throw new TimeoutException(\"\u51e6\u7406\u304c\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f\");\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        } finally {\n            executor.shutdown();\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-146\">\n<h4 class=\"wp-block-heading\" id=\"i-38\">\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u691c\u51fa\u306e\u305f\u3081\u306e\u30c4\u30fc\u30eb\u3068\u624b\u6cd5<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-147\">\n<p>\u30001. <strong>\u30d2\u30fc\u30d7\u30c0\u30f3\u30d7\u306e\u5206\u6790<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class HeapDumpGenerator {\n    public static void generateHeapDump() {\n        try {\n            MBeanServer server = ManagementFactory.getPlatformMBeanServer();\n            HotSpotDiagnosticMXBean mxBean = ManagementFactory.newPlatformMXBeanProxy(\n                server,\n                \"com.sun.management:type=HotSpotDiagnostic\",\n                HotSpotDiagnosticMXBean.class\n            );\n            String fileName = \"heap_dump_\" + \n                            System.currentTimeMillis() + \".hprof\";\n            mxBean.dumpHeap(fileName, true);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-148\">\n<p>\u30002. <strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class MemoryMonitor {\n    public static void monitorMemory() {\n        MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();\n        MemoryUsage heapUsage = memoryBean.getHeapMemoryUsage();\n\n        System.out.println(\"\u4f7f\u7528\u4e2d\u306e\u30d2\u30fc\u30d7\u30e1\u30e2\u30ea: \" + \n                          heapUsage.getUsed() \/ 1024 \/ 1024 + \"MB\");\n        System.out.println(\"\u6700\u5927\u30d2\u30fc\u30d7\u30e1\u30e2\u30ea: \" + \n                          heapUsage.getMax() \/ 1024 \/ 1024 + \"MB\");\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-149\">\n<p>\u3053\u308c\u3089\u306e\u554f\u984c\u70b9\u3068\u5bfe\u7b56\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5b89\u5b9a\u3057\u305f\u4e26\u5217\u51e6\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-150\">\n<h2 class=\"wp-block-heading\" id=\"i-39\">\uff15\uff0e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-151\">\n<h3 class=\"wp-block-heading\" id=\"i-40\">5.1 \u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u6700\u9069\u306a\u30b5\u30a4\u30ba\u8a2d\u5b9a<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-152\">\n<p>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u30b5\u30a4\u30ba\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-153\">\n<h4 class=\"wp-block-heading\" id=\"i-41\">\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u30b5\u30a4\u30ba\u306e\u8a08\u7b97\u5f0f<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadPoolCalculator {\n    public static int calculateOptimalThreads(float targetCpuUtilization,\n                                            float cpuRatio) {\n        int numberOfCores = Runtime.getRuntime().availableProcessors();\n\n        \/\/ \u6700\u9069\u306a\u30b9\u30ec\u30c3\u30c9\u6570\u306e\u8a08\u7b97\n        int optimal = Math.round(numberOfCores * targetCpuUtilization * \n                               (1 + cpuRatio));\n\n        return Math.max(optimal, 1); \/\/ \u6700\u4f4e1\u30b9\u30ec\u30c3\u30c9\u3092\u78ba\u4fdd\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-154\">\n<h4 class=\"wp-block-heading\" id=\"i-42\">\u30bf\u30b9\u30af\u306e\u7279\u6027\u306b\u57fa\u3065\u304f\u8a2d\u5b9a<\/h4>\n<\/div>\n\n<div id=\"id-1b9786dc-f4fa-428b-ac0a-303a833cb0e5\"><div id=\"sgb-css-id-155\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30bf\u30b9\u30af\u30bf\u30a4\u30d7<\/th><th>\u63a8\u5968\u8a2d\u5b9a<\/th><th>\u8a08\u7b97\u5f0f<\/th><\/tr><\/thead><tbody><tr><td>CPU\u96c6\u4e2d\u578b<\/td><td>\u30b3\u30a2\u6570 + 1<\/td><td>Runtime.getRuntime().availableProcessors() + 1<\/td><\/tr><tr><td>I\/O\u96c6\u4e2d\u578b<\/td><td>\u30b3\u30a2\u6570 * 2<\/td><td>Runtime.getRuntime().availableProcessors() * 2<\/td><\/tr><tr><td>\u6df7\u5408\u578b<\/td><td>\u30b3\u30a2\u6570 * (1 + W\/C)<\/td><td>W=\u5f85\u6a5f\u6642\u9593, C=\u8a08\u7b97\u6642\u9593<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-156\">\n<h4 class=\"wp-block-heading\" id=\"i-43\">\u30ab\u30b9\u30bf\u30e0\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u306e\u5b9f\u88c5\u4f8b<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class OptimizedThreadPool {\n    public static ExecutorService createOptimizedPool(String poolName) {\n        int corePoolSize = calculateOptimalThreads(0.8f, 0.5f);\n        int maxPoolSize = corePoolSize * 2;\n        long keepAliveTime = 60L;\n\n        return new ThreadPoolExecutor(\n            corePoolSize,\n            maxPoolSize,\n            keepAliveTime,\n            TimeUnit.SECONDS,\n            new ArrayBlockingQueue&lt;&gt;(1000),\n            new ThreadFactory() {\n                private final AtomicInteger threadNumber = new AtomicInteger(1);\n\n                @Override\n                public Thread newThread(Runnable r) {\n                    Thread t = new Thread(r);\n                    t.setName(poolName + \"-\" + threadNumber.getAndIncrement());\n                    return t;\n                }\n            },\n            new ThreadPoolExecutor.CallerRunsPolicy()\n        );\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-157\">\n<h3 class=\"wp-block-heading\" id=\"i-44\">5.2 \u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u7279\u5b9a\u306e\u305f\u3081\u306e\u8a08\u6e2c\u65b9\u6cd5<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-158\">\n<h4 class=\"wp-block-heading\" id=\"i-45\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8a08\u6e2c\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class PerformanceMonitor {\n    private static final Map&lt;String, List&lt;Long&gt;&gt; executionTimes = \n        new ConcurrentHashMap&lt;&gt;();\n\n    public static void recordExecutionTime(String taskName, long startTime) {\n        long executionTime = System.nanoTime() - startTime;\n        executionTimes.computeIfAbsent(taskName, k -&gt; new ArrayList&lt;&gt;())\n                     .add(executionTime);\n    }\n\n    public static void printStatistics(String taskName) {\n        List&lt;Long&gt; times = executionTimes.get(taskName);\n        if (times == null || times.isEmpty()) {\n            System.out.println(\"No data for task: \" + taskName);\n            return;\n        }\n\n        DoubleSummaryStatistics stats = times.stream()\n            .mapToDouble(t -&gt; t \/ 1_000_000.0) \/\/ \u30ca\u30ce\u79d2\u304b\u3089\u30df\u30ea\u79d2\u306b\u5909\u63db\n            .summaryStatistics();\n\n        System.out.printf(\"\"\"\n            Task: %s\n            Count: %d\n            Average: %.2f ms\n            Min: %.2f ms\n            Max: %.2f ms\n            StdDev: %.2f ms%n\"\"\",\n            taskName,\n            stats.getCount(),\n            stats.getAverage(),\n            stats.getMin(),\n            stats.getMax(),\n            calculateStdDev(times)\n        );\n    }\n\n    private static double calculateStdDev(List&lt;Long&gt; times) {\n        double mean = times.stream()\n            .mapToDouble(t -&gt; t \/ 1_000_000.0)\n            .average()\n            .orElse(0.0);\n\n        double variance = times.stream()\n            .mapToDouble(t -&gt; t \/ 1_000_000.0)\n            .map(t -&gt; Math.pow(t - mean, 2))\n            .average()\n            .orElse(0.0);\n\n        return Math.sqrt(variance);\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-159\">\n<h4 class=\"wp-block-heading\" id=\"i-46\">\u30b9\u30ec\u30c3\u30c9\u30c0\u30f3\u30d7\u306e\u53d6\u5f97\u3068\u5206\u6790<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ThreadDumpAnalyzer {\n    public static void generateThreadDump() {\n        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();\n        ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(true, true);\n\n        for (ThreadInfo info : threadInfos) {\n            System.out.println(\"\"\"\n                Thread: %s\n                State: %s\n                Blocked Count: %d\n                Waited Count: %d\n                Lock Name: %s\n                Stack Trace:\n                %s\n                \"\"\".formatted(\n                    info.getThreadName(),\n                    info.getThreadState(),\n                    info.getBlockedCount(),\n                    info.getWaitedCount(),\n                    info.getLockName(),\n                    formatStackTrace(info.getStackTrace())\n                )\n            );\n        }\n    }\n\n    private static String formatStackTrace(StackTraceElement[] elements) {\n        return Arrays.stream(elements)\n                    .map(element -&gt; \"\\t\" + element.toString())\n                    .collect(Collectors.joining(\"\\n\"));\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-160\">\n<h4 class=\"wp-block-heading\" id=\"i-47\">\u30e1\u30c8\u30ea\u30af\u30b9\u53ce\u96c6\u306e\u5b9f\u88c5<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class ConcurrencyMetrics {\n    private static final Map&lt;String, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();\n    private static final Map&lt;String, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();\n\n    public static class Meter {\n        private final AtomicLong count = new AtomicLong(0);\n        private final AtomicLong totalTime = new AtomicLong(0);\n\n        public void mark(long time) {\n            count.incrementAndGet();\n            totalTime.addAndGet(time);\n        }\n\n        public double getMeanTime() {\n            long c = count.get();\n            return c &gt; 0 ? (double) totalTime.get() \/ c : 0.0;\n        }\n    }\n\n    public static class Timer implements AutoCloseable {\n        private final String name;\n        private final long startTime;\n\n        public Timer(String name) {\n            this.name = name;\n            this.startTime = System.nanoTime();\n        }\n\n        @Override\n        public void close() {\n            long time = System.nanoTime() - startTime;\n            meters.computeIfAbsent(name, k -&gt; new Meter()).mark(time);\n        }\n    }\n\n    public static Timer startTimer(String name) {\n        return new Timer(name);\n    }\n\n    public static void printMetrics() {\n        meters.forEach((name, meter) -&gt; {\n            System.out.printf(\"\"\"\n                Metric: %s\n                Count: %d\n                Average Time: %.2f ms%n\"\"\",\n                name,\n                meter.count.get(),\n                meter.getMeanTime() \/ 1_000_000.0\n            );\n        });\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-161\">\n<h3 class=\"wp-block-heading\" id=\"i-48\">5.3 \u5b9f\u8df5\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u4e8b\u4f8b<\/h3>\n<\/div>\n\n<div id=\"sgb-css-id-162\">\n<h4 class=\"wp-block-heading\" id=\"i-49\">\u4e8b\u4f8b1\uff1a \u30d0\u30c3\u30c1\u51e6\u7406\u306e\u6700\u9069\u5316<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class BatchProcessingOptimization {\n    \/\/ \u6700\u9069\u5316\u524d\n    public void beforeOptimization(List&lt;Data&gt; dataList) {\n        dataList.forEach(data -&gt; {\n            processData(data);\n            saveToDatabase(data);\n        });\n    }\n\n    \/\/ \u6700\u9069\u5316\u5f8c\n    public void afterOptimization(List&lt;Data&gt; dataList) {\n        int batchSize = 1000;\n        int numThreads = Runtime.getRuntime().availableProcessors();\n        ExecutorService executor = Executors.newFixedThreadPool(numThreads);\n\n        try {\n            \/\/ \u30c7\u30fc\u30bf\u3092\u5206\u5272\u3057\u3066\u4e26\u5217\u51e6\u7406\n            Lists.partition(dataList, batchSize)\n                .stream()\n                .map(batch -&gt; CompletableFuture.runAsync(() -&gt; {\n                    processBatch(batch);\n                }, executor))\n                .collect(Collectors.toList())\n                .forEach(CompletableFuture::join);\n        } finally {\n            executor.shutdown();\n        }\n    }\n\n    private void processBatch(List&lt;Data&gt; batch) {\n        \/\/ \u30d0\u30c3\u30c1\u5358\u4f4d\u3067\u306e\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406\n        try (Timer timer = ConcurrencyMetrics.startTimer(\"batch-process\")) {\n            List&lt;ProcessedData&gt; processed = batch.stream()\n                .map(this::processData)\n                .collect(Collectors.toList());\n\n            saveBatchToDatabase(processed);\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-163\">\n<h4 class=\"wp-block-heading\" id=\"i-50\">\u4e8b\u4f8b2\uff1a \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5c0e\u5165<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CacheOptimization {\n    private final LoadingCache&lt;String, Data&gt; cache;\n    private final ExecutorService executor;\n\n    public CacheOptimization() {\n        this.executor = Executors.newFixedThreadPool(\n            Runtime.getRuntime().availableProcessors()\n        );\n\n        this.cache = CacheBuilder.newBuilder()\n            .maximumSize(10000)\n            .expireAfterWrite(10, TimeUnit.MINUTES)\n            .recordStats()\n            .build(new CacheLoader&lt;String, Data&gt;() {\n                @Override\n                public Data load(String key) {\n                    return loadDataFromDb(key);\n                }\n\n                @Override\n                public Map&lt;String, Data&gt; loadAll(Iterable&lt;? extends String&gt; keys) {\n                    return loadBatchFromDb(keys);\n                }\n            });\n    }\n\n    public CompletableFuture&lt;Data&gt; getData(String key) {\n        return CompletableFuture.supplyAsync(() -&gt; {\n            try (Timer timer = ConcurrencyMetrics.startTimer(\"cache-get\")) {\n                return cache.get(key);\n            } catch (ExecutionException e) {\n                throw new CompletionException(e);\n            }\n        }, executor);\n    }\n\n    public void printCacheStats() {\n        CacheStats stats = cache.stats();\n        System.out.printf(\"\"\"\n            Cache Statistics:\n            Hit Count: %d\n            Miss Count: %d\n            Hit Rate: %.2f%%\n            Average Load Penalty: %.2f ms%n\"\"\",\n            stats.hitCount(),\n            stats.missCount(),\n            stats.hitRate() * 100,\n            stats.averageLoadPenalty() \/ 1_000_000.0\n        );\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-164\">\n<h4 class=\"wp-block-heading\" id=\"i-51\">\u4e8b\u4f8b3\uff1a \u975e\u540c\u671f\u51e6\u7406\u306e\u6700\u9069\u5316<\/h4>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class AsyncProcessingOptimization {\n    private final Executor asyncExecutor;\n    private final ScheduledExecutorService timeoutExecutor;\n\n    public AsyncProcessingOptimization() {\n        this.asyncExecutor = ForkJoinPool.commonPool();\n        this.timeoutExecutor = Executors.newScheduledThreadPool(1);\n    }\n\n    public &lt;T&gt; CompletableFuture&lt;T&gt; withTimeout(\n            CompletableFuture&lt;T&gt; future,\n            long timeout,\n            TimeUnit unit\n    ) {\n        CompletableFuture&lt;T&gt; timeoutFuture = new CompletableFuture&lt;&gt;();\n        timeoutExecutor.schedule(() -&gt; {\n            timeoutFuture.completeExceptionally(\n                new TimeoutException(\"Operation timed out\")\n            );\n        }, timeout, unit);\n\n        return CompletableFuture.anyOf(future, timeoutFuture)\n            .thenApply(result -&gt; (T) result);\n    }\n\n    public CompletableFuture&lt;List&lt;Result&gt;&gt; processAsync(List&lt;Task&gt; tasks) {\n        return CompletableFuture.supplyAsync(() -&gt; {\n            try (Timer timer = ConcurrencyMetrics.startTimer(\"async-process\")) {\n                return tasks.stream()\n                    .map(task -&gt; processTask(task)\n                        .orTimeout(5, TimeUnit.SECONDS)\n                        .exceptionally(ex -&gt; {\n                            logError(task, ex);\n                            return null;\n                        }))\n                    .collect(Collectors.toList());\n            }\n        }, asyncExecutor)\n        .thenCompose(futures -&gt; CompletableFuture.allOf(\n            futures.toArray(new CompletableFuture[0])\n        )\n        .thenApply(v -&gt; futures.stream()\n            .map(CompletableFuture::join)\n            .filter(Objects::nonNull)\n            .collect(Collectors.toList())));\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-165\">\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u624b\u6cd5\u3092\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4e26\u5217\u51e6\u7406\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u904e\u5ea6\u306a\u6700\u9069\u5316\u306f\u9006\u52b9\u679c\u306b\u306a\u308b\u53ef\u80fd\u6027\u3082\u3042\u308b\u305f\u3081\u3001\u5fc5\u305a\u8a08\u6e2c\u3068\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u306b\u57fa\u3065\u3044\u3066\u5224\u65ad\u3092\u884c\u3046\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-166\">\n<h2 class=\"wp-block-heading\" id=\"i-52\">\u307e\u3068\u3081<\/h2>\n<\/div>\n\n<div id=\"sgb-css-id-167\">\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Java\u306b\u304a\u3051\u308b\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u3001\u57fa\u790e\u304b\u3089\u5b9f\u8df5\u7684\u306a\u30c6\u30af\u30cb\u30c3\u30af\u307e\u3067\u3092\u89e3\u8aac\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u3053\u3053\u3067\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3092\u6574\u7406\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-168\">\n<h4 class=\"wp-block-heading\" id=\"i-53\">\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u306e\u9078\u629e\u6307\u91dd<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-169\">\n<p>\u4ee5\u4e0b\u306e\u8868\u306f\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u305f\u6700\u9069\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u306e\u9078\u629e\u57fa\u6e96\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"id-53a345da-bb31-4a38-a87a-f66bd780aecc\"><div id=\"sgb-css-id-170\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/th><th>\u63a8\u5968\u30d1\u30bf\u30fc\u30f3<\/th><th>\u4e3b\u306a\u5229\u70b9<\/th><\/tr><\/thead><tbody><tr><td>\u30b7\u30f3\u30d7\u30eb\u306a\u975e\u540c\u671f\u51e6\u7406<\/td><td>Thread\/Runnable<\/td><td>\u5b9f\u88c5\u304c\u7c21\u5358\u3001\u5236\u5fa1\u304c\u5bb9\u6613<\/td><\/tr><tr><td>\u8907\u6570\u30bf\u30b9\u30af\u306e\u4e26\u5217\u5b9f\u884c<\/td><td>ExecutorService<\/td><td>\u30b9\u30ec\u30c3\u30c9\u7ba1\u7406\u306e\u52b9\u7387\u5316\u3001\u518d\u5229\u7528\u6027<\/td><\/tr><tr><td>\u518d\u5e30\u7684\u306a\u51e6\u7406<\/td><td>Fork\/Join<\/td><td>\u51e6\u7406\u306e\u5206\u5272\u7d71\u6cbb\u3001\u52b9\u7387\u7684\u306a\u8ca0\u8377\u5206\u6563<\/td><\/tr><tr><td>\u975e\u540c\u671f\u51e6\u7406\u306e\u9023\u9396<\/td><td>CompletableFuture<\/td><td>\u67d4\u8edf\u306a\u51e6\u7406\u306e\u7d44\u307f\u5408\u308f\u305b\u3001\u4f8b\u5916\u51e6\u7406<\/td><\/tr><tr><td>\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u51e6\u7406<\/td><td>ParallelStream<\/td><td>\u5b9f\u88c5\u306e\u7c21\u6f54\u3055\u3001\u5ba3\u8a00\u7684\u306a\u8a18\u8ff0<\/td><\/tr><tr><td>I\/O\u96c6\u4e2d\u578b\u306e\u51e6\u7406<\/td><td>Virtual Threads<\/td><td>\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u52b9\u7387\u7684\u306a\u5229\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div><\/div>\n\n<div id=\"sgb-css-id-171\">\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u5b9f\u88c5\u6642\u306e\u91cd\u8981\u306a\u30c1\u30a7\u30c3\u30af\u30dd\u30a4\u30f3\u30c8<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-172\">\n<p>\u30001. <strong>\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u30c6\u30a3<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u30b3\u30fc\u30c9\u306e\u4f8b\npublic class ThreadSafeExample {\n    private final AtomicInteger counter = new AtomicInteger(0);\n    private final Map&lt;String, String&gt; safeMap = new ConcurrentHashMap&lt;&gt;();\n    private final List&lt;String&gt; safeList = new CopyOnWriteArrayList&lt;&gt;();\n}<\/pre>\n\n\n<div id=\"sgb-css-id-173\">\n<p>\u30002. <strong>\u30ea\u30bd\u30fc\u30b9\u7ba1\u7406<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u9069\u5207\u306a\u30ea\u30bd\u30fc\u30b9\u89e3\u653e\u306e\u4f8b\npublic class ResourceManagement {\n    private final ExecutorService executor = \n        Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());\n\n    public void shutdown() {\n        executor.shutdown();\n        try {\n            if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {\n                executor.shutdownNow();\n            }\n        } catch (InterruptedException e) {\n            executor.shutdownNow();\n            Thread.currentThread().interrupt();\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-174\">\n<p>\u30003. <strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/strong><\/p>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u76e3\u8996\u306e\u4f8b\npublic class PerformanceMonitoring {\n    private static final Timer timer = new Timer();\n\n    public void executeWithMonitoring(Runnable task) {\n        timer.start();\n        try {\n            task.run();\n        } finally {\n            System.out.printf(\"\u5b9f\u884c\u6642\u9593: %.2f ms%n\", timer.stop());\n        }\n    }\n}<\/pre>\n\n\n<div id=\"sgb-css-id-175\">\n<h4 class=\"wp-block-heading\" id=\"i-55\">\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-176\">\n<p>\u30001. <strong>\u8a2d\u8a08\u30d5\u30a7\u30fc\u30ba<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-177\">\n<p>\u3000\u3000\u25cf \u4e26\u5217\u5316\u306e\u5fc5\u8981\u6027\u3092\u614e\u91cd\u306b\u8a55\u4fa1<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-178\">\n<p>\u3000\u3000\u25cf \u9069\u5207\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u306e\u9078\u629e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-179\">\n<p>\u3000\u3000\u25cf \u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u30c6\u30a3\u306e\u691c\u8a0e<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-180\">\n<p>\u30002. <strong><strong>\u5b9f\u88c5\u30d5\u30a7\u30fc\u30ba<\/strong><\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-181\">\n<p>\u3000\u3000\u25cf \u5171\u6709\u30ea\u30bd\u30fc\u30b9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-182\">\n<p>\u3000\u3000\u25cf \u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u9632\u6b62\u30e1\u30ab\u30cb\u30ba\u30e0\u306e\u5c0e\u5165<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-183\">\n<p>\u3000\u3000\u25cf \u9069\u5207\u306a\u4f8b\u5916\u51e6\u7406\u306e\u5b9f\u88c5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-184\">\n<p>\u30003. <strong><strong><strong>\u904b\u7528\u30d5\u30a7\u30fc\u30ba<\/strong><\/strong><\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-185\">\n<p>\u3000\u3000\u25cf \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5b9a\u671f\u7684\u306a\u8a08\u6e2c<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-186\">\n<p>\u3000\u3000\u25cf \u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u7279\u5b9a\u3068\u6539\u5584<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-187\">\n<p>\u3000\u3000\u25cf \u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u76e3\u8996<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-188\">\n<h4 class=\"wp-block-heading\" id=\"i-56\">\u4eca\u5f8c\u306e\u5b66\u7fd2\u306e\u9032\u3081\u65b9<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-189\">\n<p>\u30001. <strong>\u57fa\u790e\u306e\u5f37\u5316<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-190\">\n<p>\u3000\u3000\u25cf Java Concurrency in Practice\u306e\u8aad\u7834<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-191\">\n<p>\u3000\u3000\u25cf \u4e26\u5217\u51e6\u7406\u30d1\u30bf\u30fc\u30f3\u306e\u5b9f\u88c5\u6f14\u7fd2<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-192\">\n<p>\u3000\u3000\u25cf \u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u3067\u306e\u77e5\u898b\u53ce\u96c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u76e3\u8996<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-193\">\n<p>\u30002. <strong>\u5b9f\u8df5\u7684\u306a\u30b9\u30ad\u30eb\u5411\u4e0a<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-194\">\n<p>\u3000\u3000\u25cf \u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u9069\u7528<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-195\">\n<p>\u3000\u3000\u25cf \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u5b9f\u8df5<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-196\">\n<p>\u3000\u3000\u25cf \u65b0\u3057\u3044\u4e26\u5217\u51e6\u7406\u6280\u8853\u306e\u30ad\u30e3\u30c3\u30c1\u30a2\u30c3\u30d7<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-197\">\n<p>\u30003. <strong>\u5fdc\u7528\u77e5\u8b58\u306e\u7fd2\u5f97<\/strong><\/p>\n<\/div>\n\n<div id=\"sgb-css-id-198\">\n<p>\u3000\u3000\u25cf \u5206\u6563\u30b7\u30b9\u30c6\u30e0\u3078\u306e\u5c55\u958b<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-199\">\n<p>\u3000\u3000\u25cf \u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u3067\u306e\u6d3b\u7528<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-200\">\n<p>\u3000\u3000\u25cf \u30af\u30e9\u30a6\u30c9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3068\u306e\u7d71\u5408<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-201\">\n<h4 class=\"wp-block-heading\" id=\"i-57\">\u304a\u308f\u308a\u306b<\/h4>\n<\/div>\n\n<div id=\"sgb-css-id-202\">\n<p>\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u306f\u3001\u73fe\u4ee3\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u958b\u767a\u306b\u304a\u3044\u3066\u5fc5\u9808\u306e\u30b9\u30ad\u30eb\u3067\u3059\u3002\u672c\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305f\u5185\u5bb9\u3092\u57fa\u790e\u3068\u3057\u3066\u3001\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u5b9f\u8df5\u3057\u3066\u3044\u304f\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fe1\u983c\u6027\u306e\u9ad8\u3044\u30b7\u30b9\u30c6\u30e0\u306e\u958b\u767a\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-203\">\n<p>\u4eca\u5f8c\u3082\u3001Java Virtual Threads\u306a\u3069\u306e\u65b0\u3057\u3044\u6280\u8853\u306e\u767b\u5834\u306b\u3088\u308a\u3001\u4e26\u5217\u51e6\u7406\u306e\u5b9f\u88c5\u65b9\u6cd5\u306f\u9032\u5316\u3057\u3066\u3044\u304f\u3067\u3057\u3087\u3046\u3002\u7d99\u7d9a\u7684\u306a\u5b66\u7fd2\u3068\u5b9f\u8df5\u3092\u901a\u3058\u3066\u3001\u30b9\u30ad\u30eb\u3092\u78e8\u3044\u3066\u3044\u304f\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<\/div>\n\n<div id=\"sgb-css-id-204\">\n<p>\u672c\u8a18\u4e8b\u304c\u3001\u7686\u69d8\u306e\u4e26\u5217\u51e6\u7406\u5b9f\u88c5\u306e\u4e00\u52a9\u3068\u306a\u308c\u3070\u5e78\u3044\u3067\u3059\u3002<\/p>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":2922,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,66,71],"tags":[],"class_list":{"0":"post-772","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-java","8":"category-java-syntax","9":"category-java-async"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=772"}],"version-history":[{"count":8,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/772\/revisions"}],"predecessor-version":[{"id":2959,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/772\/revisions\/2959"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/media\/2922"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}