{"id":78942,"date":"2026-02-28T17:06:38","date_gmt":"2026-02-28T09:06:38","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/78942.html"},"modified":"2026-02-28T17:06:38","modified_gmt":"2026-02-28T09:06:38","slug":"java-%e7%ba%bf%e7%a8%8b-%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/78942.html","title":{"rendered":"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f"},"content":{"rendered":"<h2>\u751f\u547d\u5468\u671f<\/h2>\n<h3>1 \u6574\u4f53\u751f\u547d\u5468\u671f\u72b6\u6001\u56fe<\/h3>\n<p>\u7ecf\u5178\u56fe&#xff1a;\u6e05\u6670\u533a\u5206 NEW \u2192 RUNNABLE&#xff08;\u5c31\u7eea&#043;\u8fd0\u884c&#xff09;\u2192 BLOCKED \/ WAITING \/ TIMED_WAITING \u2192 TERMINATED&#xff0c;\u5e76\u6807\u6ce8\u4e86\u6240\u6709\u8fdb\u5165\u65b9\u5f0f\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090620-69a2b00c28483.png\" alt=\"image-20260227091339104\" \/><\/p>\n<p>\u4e94\u72b6\u6001\u7ecf\u5178\u56fe&#xff1a;\u65b0\u5efa \u2192 \u5c31\u7eea \u2192 \u8fd0\u884c \u2192 \u963b\u585e \u2192 \u6b7b\u4ea1\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090620-69a2b00c7aa15.png\" alt=\"Untitled-2025-12-11-2114.excalidraw\" \/><\/p>\n<p>\u8d85\u7ea7\u8be6\u7ec6\u7248&#xff08;\u5e26\u6587\u5b57\u8bf4\u660e&#xff09;&#xff1a;\u628a\u5c31\u7eea\u7ec6\u5206\u4e3a\u201c\u7b49\u5f85CPU\u201d\u548c\u201c\u8fd0\u884c\u4e2d\u201d&#xff0c;\u963b\u585e\u5206\u4e3a\u5404\u79cd\u573a\u666f&#xff0c;\u975e\u5e38\u9002\u5408\u6df1\u5165\u7406\u89e3\u3002<\/p>\n<p>#mermaid-svg-jvGw7XGKrhRKPI0b{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-jvGw7XGKrhRKPI0b .error-icon{fill:#552222;}#mermaid-svg-jvGw7XGKrhRKPI0b .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jvGw7XGKrhRKPI0b .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jvGw7XGKrhRKPI0b .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b .marker.cross{stroke:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jvGw7XGKrhRKPI0b p{margin:0;}#mermaid-svg-jvGw7XGKrhRKPI0b defs #statediagram-barbEnd{fill:#333333;stroke:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#mermaid-svg-jvGw7XGKrhRKPI0b g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#mermaid-svg-jvGw7XGKrhRKPI0b g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#mermaid-svg-jvGw7XGKrhRKPI0b g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-jvGw7XGKrhRKPI0b g.stateGroup line{stroke:#333333;stroke-width:1;}#mermaid-svg-jvGw7XGKrhRKPI0b .transition{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-jvGw7XGKrhRKPI0b .stateGroup .composit{fill:white;border-bottom:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b .state-note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-jvGw7XGKrhRKPI0b .state-note text{fill:black;stroke:none;font-size:10px;}#mermaid-svg-jvGw7XGKrhRKPI0b .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-jvGw7XGKrhRKPI0b .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#mermaid-svg-jvGw7XGKrhRKPI0b .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jvGw7XGKrhRKPI0b .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-jvGw7XGKrhRKPI0b .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jvGw7XGKrhRKPI0b .edgeLabel .label text{fill:#333;}#mermaid-svg-jvGw7XGKrhRKPI0b .label div .edgeLabel{color:#333;}#mermaid-svg-jvGw7XGKrhRKPI0b .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#mermaid-svg-jvGw7XGKrhRKPI0b .node circle.state-start{fill:#333333;stroke:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b .node .fork-join{fill:#333333;stroke:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#mermaid-svg-jvGw7XGKrhRKPI0b .end-state-inner{fill:white;stroke-width:1.5;}#mermaid-svg-jvGw7XGKrhRKPI0b .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b #statediagram-barbEnd{fill:#333333;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jvGw7XGKrhRKPI0b .cluster-label,#mermaid-svg-jvGw7XGKrhRKPI0b .nodeLabel{color:#131300;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-cluster rect.outer{rx:5px;ry:5px;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-state .divider{stroke:#9370DB;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-state .title-state{rx:5px;ry:5px;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-cluster.statediagram-cluster .inner{fill:white;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-cluster .inner{rx:0;ry:0;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-state rect.basic{rx:5px;ry:5px;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#mermaid-svg-jvGw7XGKrhRKPI0b .note-edge{stroke-dasharray:5;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-note text{fill:black;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram-note .nodeLabel{color:black;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagram .edgeLabel{color:red;}#mermaid-svg-jvGw7XGKrhRKPI0b #dependencyStart,#mermaid-svg-jvGw7XGKrhRKPI0b #dependencyEnd{fill:#333333;stroke:#333333;stroke-width:1;}#mermaid-svg-jvGw7XGKrhRKPI0b .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-jvGw7XGKrhRKPI0b :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;}<span class=\"edgeLabel\"><\/p>\n<p>new Thread()<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>start()<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u7b49\u5f85 synchronized \u9501<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u83b7\u53d6\u5230\u9501<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>wait() \/ join()<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>sleep() \/ wait(time)<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>notify() \/ interrupt()<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u65f6\u95f4\u5230 \/ interrupt()<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>run() \u6267\u884c\u5b8c\u6bd5<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u6781\u5c11\u89c1&#xff0c;\u901a\u5e38\u5148\u53d8 RUNNABLE<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u6781\u5c11\u89c1<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u6781\u5c11\u89c1<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>NEW<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>RUNNABLE<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>BLOCKED<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>WAITING<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>TIMED_WAITING<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>TERMINATED<\/p>\n<p><\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090624-69a2b0104c07a.png\" alt=\"Untitled-2026-02-27-1528\" \/><\/p>\n<p>\u7ebf\u7a0b\u751f\u547d\u5468\u671f\u6838\u5fc3\u89c4\u5219&#xff1a;<\/p>\n<li>\n<p>\u72b6\u6001\u5355\u5411\u4e0d\u53ef\u9006<br \/>\n\u4e00\u65e6\u7ebf\u7a0b\u8c03\u7528 start() \u8fdb\u5165 RUNNABLE&#xff0c;\u5c31\u6c38\u8fdc\u56de\u4e0d\u5230 NEW&#xff1b;\u4e00\u65e6\u5230\u8fbe TERMINATED&#xff0c;\u5c31\u518d\u4e5f\u65e0\u6cd5\u8fdb\u5165\u4efb\u4f55\u5176\u4ed6\u72b6\u6001&#xff08;\u7ec8\u6001&#xff0c;\u4e0d\u53ef\u590d\u6d3b&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u540c\u4e00\u4e2a\u7ebf\u7a0b\u5bf9\u8c61\u53ea\u80fd start() \u4e00\u6b21<br \/>\n\u7b2c\u4e8c\u6b21\u8c03\u7528 start() \u4f1a\u76f4\u63a5\u629b\u51fa IllegalThreadStateException&#xff08;\u4e00\u751f\u53ea\u80fd\u542f\u52a8\u4e00\u6b21&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>RUNNABLE \u662f\u201c\u4e07\u80fd\u4e2d\u8f6c\u7ad9\u201d<br \/>\n\u51e0\u4e4e\u6240\u6709\u72b6\u6001\u8f6c\u6362\u90fd\u8981\u7ecf\u8fc7 RUNNABLE&#xff08;\u5305\u62ec\u5c31\u7eea&#043;\u8fd0\u884c\u4e24\u79cdOS\u5c42\u9762\u72b6\u6001&#xff0c;JVM\u4e0d\u7ec6\u5206&#xff09;&#xff1b;NEW \u2192 RUNNABLE \u2192 \u5404\u79cd\u963b\u585e\/\u7b49\u5f85 \u2192 RUNNABLE \u2192 TERMINATED \u662f\u6700\u5178\u578b\u8def\u5f84\u3002<\/p>\n<\/li>\n<li>\n<p>\u963b\u585e\u4e0e\u7b49\u5f85\u7684\u5524\u9192\u4f9d\u8d56\u5916\u90e8\u4e8b\u4ef6<\/p>\n<ul>\n<li>BLOCKED&#xff08;synchronized\u9501\u7ade\u4e89&#xff09;\u2192 \u81ea\u52a8\u9760\u83b7\u5f97\u9501\u8f6c\u4e3aRUNNABLE<\/li>\n<li>WAITING \u2192 \u5fc5\u987b\u88ab notify\/notifyAll\u3001unpark \u6216 \u88abjoin\u7684\u7ebf\u7a0b\u7ed3\u675f \u5524\u9192<\/li>\n<li>TIMED_WAITING \u2192 \u9664\u4e0a\u8ff0\u5916&#xff0c;\u8fd8\u53ef\u4ee5\u9760\u65f6\u95f4\u5230\u8fbe\u81ea\u52a8\u5524\u9192<br \/>\n\u7a0b\u5e8f\u5458\u65e0\u6cd5\u201c\u5f3a\u884c\u628a\u7ebf\u7a0b\u4ece\u7b49\u5f85\u4e2d\u62fd\u51fa\u6765\u201d&#xff0c;\u5fc5\u987b\u9760\u8fd9\u4e9b\u89e6\u53d1\u6761\u4ef6\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u7981\u6b62\u4f7f\u7528 stop()\u3001suspend()\u3001resume()<br \/>\n\u8fd9\u51e0\u4e2a\u65b9\u6cd5\u65e9\u5728 JDK 1.2 \u5c31\u6807\u8bb0\u4e3aDeprecated&#xff0c;\u6781\u4e0d\u5b89\u5168&#xff1a;<\/p>\n<ul>\n<li>stop() \u4f1a\u76f4\u63a5\u6740\u6b7b\u7ebf\u7a0b&#xff0c;\u53ef\u80fd\u5bfc\u81f4\u8d44\u6e90\u4e0d\u91ca\u653e\u3001\u5bf9\u8c61\u5904\u4e8e\u4e0d\u4e00\u81f4\u72b6\u6001<\/li>\n<li>suspend() \u4f1a\u8ba9\u7ebf\u7a0b\u6c38\u4e45\u6302\u8d77\u800c\u4e0d\u91ca\u653e\u9501&#xff0c;\u6781\u6613\u6b7b\u9501<br \/>\n\u73b0\u4ee3\u63a8\u8350\u505a\u6cd5&#xff1a;\u7528 interrupt() &#043; \u4e3b\u52a8\u68c0\u67e5\u4e2d\u65ad\u6807\u5fd7&#xff08;isInterrupted() \/ Thread.interrupted()&#xff09;\u6765\u534f\u4f5c\u5f0f\u7ec8\u6b62\u7ebf\u7a0b\u3002<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090626-69a2b012c214d.png\" alt=\"image-20260227153550076\" \/><\/p>\n<\/li>\n<li>\n<p>interrupt() \u53ea\u662f\u201c\u793c\u8c8c\u8bf7\u6c42\u201d\u4e2d\u65ad&#xff0c;\u4e0d\u662f\u5f3a\u5236\u6740\u6b7b<\/p>\n<ul>\n<li>\u4ec5\u5bf9\u5904\u4e8e sleep()\u3001wait()\u3001join()\u3001park() \u7b49\u53ef\u4e2d\u65ad\u65b9\u6cd5\u7684\u7ebf\u7a0b\u4f1a\u629b\u51fa InterruptedException<\/li>\n<li>\u5bf9\u666e\u901a\u8fd0\u884c\u4ee3\u7801\u65e0\u76f4\u63a5\u6548\u679c&#xff0c;\u5fc5\u987b\u7531\u7ebf\u7a0b\u81ea\u5df1\u68c0\u67e5\u4e2d\u65ad\u72b6\u6001\u5e76\u4e3b\u52a8\u9000\u51fa<br \/>\n&#xff08;\u8fd9\u662f\u201c\u4f18\u96c5\u5173\u95ed\u7ebf\u7a0b\u201d\u7684\u6838\u5fc3\u539f\u5219&#xff09;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>run() \u6267\u884c\u7ed3\u675f\u6216\u672a\u6355\u83b7\u5f02\u5e38 &#061; \u6b7b\u4ea1<br \/>\n\u7ebf\u7a0b\u7684 TERMINATED \u72b6\u6001\u53ea\u80fd\u901a\u8fc7 run() \u65b9\u6cd5\u6b63\u5e38\u8fd4\u56de \u6216 \u629b\u51fa\u672a\u6355\u83b7\u5f02\u5e38\u4e24\u79cd\u65b9\u5f0f\u5230\u8fbe&#xff0c;\u6ca1\u6709\u5176\u4ed6\u9014\u5f84\u3002<\/p>\n<\/li>\n<h3>2 \u5404\u72b6\u6001\u8be6\u7ec6\u8bf4\u660e<\/h3>\n<p>\u603b\u7ed3&#xff1a;<\/p>\n<p>\u65b0\u5efa \u2192 start() \u2192 \u5c31\u7eea \u2192 \u83b7\u53d6CPU \u2192 \u8fd0\u884c<br \/>\n\u8fd0\u884c \u2192<\/p>\n<ul>\n<li>sleep\/wait\/join\/park\/synchronized\u62ff\u4e0d\u5230\u9501 \u2192 \u963b\u585e<\/li>\n<li>yield()\/\u65f6\u95f4\u7247\u7ed3\u675f \u2192 \u5c31\u7eea<\/li>\n<li>run()\u7ed3\u675f\/\u5f02\u5e38 \u2192 \u7ec8\u6b62<\/li>\n<\/ul>\n<p>\u963b\u585e \u2192 \u65f6\u95f4\u5230\/notify\/unpark\/\u9501\u91ca\u653e \u2192 \u5c31\u7eea<\/p>\n<h4>&#xff08;1&#xff09;\u65b0\u5efa\u72b6\u6001&#xff08;New&#xff09;<\/h4>\n<ul>\n<li>\n<p>\u7279\u5f81&#xff1a;\u7ebf\u7a0b\u5bf9\u8c61\u5df2\u88ab new \u521b\u5efa&#xff0c;\u4f46\u8fd8\u672a\u8c03\u7528 start() \u65b9\u6cd5\u3002\u540c\u4e00\u4e2a\u7ebf\u7a0b\u5bf9\u8c61\u4e0d\u80fd\u591a\u6b21\u8c03\u7528 start () \u65b9\u6cd5&#xff0c;\u5426\u5219\u4f1a\u629b\u51faIllegalThreadStateException\u5f02\u5e38\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090627-69a2b01319085.png\" alt=\"image-20260227153433914\" \/><\/p>\n<\/li>\n<li>\n<p>\u6b64\u65f6\u7ebf\u7a0b&#xff1a;\u8fd8\u6ca1\u6709\u88ab JVM \u5206\u914d\u8d44\u6e90&#xff08;\u6808\u7a7a\u95f4\u3001\u7a0b\u5e8f\u8ba1\u6570\u5668\u7b49&#xff09;&#xff0c;\u672c\u8d28\u4e0a\u53ea\u662f\u4e00\u4e2a\u666e\u901a Java \u5bf9\u8c61\u3002<\/p>\n<\/li>\n<li>\n<p>\u80fd\u505a\u4ec0\u4e48&#xff1a;\u53ea\u80fd\u8c03\u7528 start()&#xff0c;\u4e0d\u80fd\u8c03\u7528 run()&#xff08;\u76f4\u63a5\u8c03\u7528 run() \u53ea\u662f\u666e\u901a\u65b9\u6cd5&#xff0c;\u4e0d\u4f1a\u542f\u52a8\u65b0\u7ebf\u7a0b&#xff09;\u3002<\/p>\n<\/li>\n<li>\n<p>\u4ee3\u7801\u793a\u4f8b&#xff1a;<\/p>\n<\/li>\n<\/ul>\n<p><span class=\"token class-name\">Thread<\/span> t <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u6211\u6b63\u5728\u8fd0\u884c&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>   <span class=\"token comment\">\/\/ \u2190 \u6b64\u65f6\u5904\u4e8e New \u72b6\u6001<\/span><\/p>\n<p>\u72b6\u6001\u6d41\u8f6c&#xff1a;new Thread() \u2192 \u65b0\u5efa \u2192 t.start() \u2192 \u5c31\u7eea<\/p>\n<h4>&#xff08;2&#xff09;\u5c31\u7eea\u72b6\u6001&#xff08;Runnable \/ Ready&#xff09;<\/h4>\n<ul>\n<li>\u7279\u5f81&#xff1a;\u5df2\u8c03\u7528 start()&#xff0c;\u7ebf\u7a0b\u5df2\u7ecf\u51c6\u5907\u597d\u8fd0\u884c&#xff0c;\u7b49\u5f85\u64cd\u4f5c\u7cfb\u7edf\u5206\u914d CPU \u65f6\u95f4\u7247\u3002<\/li>\n<li>\u6ce8\u610f&#xff1a;Java \u5b98\u65b9 Thread.State \u4e2d\u628a\u5c31\u7eea &#043; \u8fd0\u884c\u5408\u5e76\u4e3a\u4e00\u4e2a RUNNABLE \u72b6\u6001&#xff0c;\u4f46\u56fd\u5185\u901a\u5e38\u628a\u5b83\u4eec\u62c6\u5f00\u8bb2\u89e3\u3002<\/li>\n<li>\u6b64\u65f6\u7ebf\u7a0b&#xff1a;\u5728\u5c31\u7eea\u961f\u5217\u4e2d\u6392\u961f&#xff0c;\u5177\u5907\u8fd0\u884c\u7684\u4e00\u5207\u6761\u4ef6&#xff0c;\u53ea\u5dee CPU\u3002<\/li>\n<li>\u4ee3\u7801\u793a\u4f8b&#xff1a;<\/li>\n<\/ul>\n<p>t<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>   <span class=\"token comment\">\/\/ \u2190 \u8c03\u7528\u540e\u7acb\u5373\u8fdb\u5165\u5c31\u7eea\u72b6\u6001<\/span><\/p>\n<p>\u72b6\u6001\u6d41\u8f6c&#xff1a;<\/p>\n<ul>\n<li>\u5c31\u7eea \u2192 \u83b7\u5f97 CPU \u2192 \u8fd0\u884c<\/li>\n<li>\u8fd0\u884c\u4e2d\u88ab\u62a2\u5360 \/ yield() \/ \u65f6\u95f4\u7247\u7528\u5b8c \u2192 \u56de\u5230 \u5c31\u7eea<\/li>\n<\/ul>\n<h4>&#xff08;3&#xff09;\u8fd0\u884c\u72b6\u6001&#xff08;Running&#xff09;<\/h4>\n<ul>\n<li>\u7279\u5f81&#xff1a;\u7ebf\u7a0b\u5df2\u83b7\u5f97 CPU \u65f6\u95f4\u7247&#xff0c;\u6b63\u5728\u771f\u6b63\u6267\u884c run() \u65b9\u6cd5\u4e2d\u7684\u4ee3\u7801\u3002<\/li>\n<li>\u6b64\u65f6\u7ebf\u7a0b&#xff1a;\u662f CPU \u7684\u201c\u5ba0\u513f\u201d&#xff0c;\u6b63\u5728\u8dd1\u4e1a\u52a1\u903b\u8f91\u3002<\/li>\n<li>\u53ef\u80fd\u88ab\u6253\u65ad\u7684\u60c5\u51b5&#xff1a;\n<ul>\n<li>\u65f6\u95f4\u7247\u7528\u5b8c&#xff08;\u6700\u5e38\u89c1&#xff09;<\/li>\n<li>\u8c03\u7528 Thread.yield()&#xff08;\u4e3b\u52a8\u8ba9\u51fa&#xff09;<\/li>\n<li>\u88ab\u66f4\u9ad8\u4f18\u5148\u7ea7\u7ebf\u7a0b\u62a2\u5360<\/li>\n<li>\u6267\u884c\u5230\u963b\u585e\u64cd\u4f5c&#xff08;\u5982 sleep\u3001wait\u3001synchronized \u62ff\u4e0d\u5230\u9501&#xff09;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u72b6\u6001\u6d41\u8f6c&#xff1a;<\/p>\n<ul>\n<li>\u8fd0\u884c \u2192 \u6267\u884c\u5b8c\u6bd5\u6216\u5f02\u5e38 \u2192 \u7ec8\u6b62<\/li>\n<li>\u8fd0\u884c \u2192 \u9047\u5230\u963b\u585e\u64cd\u4f5c \u2192 \u963b\u585e<\/li>\n<\/ul>\n<h4>&#xff08;4&#xff09;\u963b\u585e\u72b6\u6001&#xff08;Blocked \/ Waiting \/ Timed Waiting&#xff09;<\/h4>\n<p>\u8fd9\u662f\u9762\u8bd5\u6700\u7231\u6df1\u6316\u7684\u90e8\u5206\u3002\u963b\u585e\u4e0d\u662f\u4e00\u4e2a\u5355\u4e00\u72b6\u6001&#xff0c;\u800c\u662f\u4e09\u5927\u7c7b&#xff1a;<\/p>\n<table>\n<tr>\u5b50\u72b6\u6001\u82f1\u6587\u89e6\u53d1\u65b9\u5f0f&#xff08;\u6700\u5e38\u89c1&#xff09;\u5524\u9192\u65b9\u5f0f\u7279\u70b9<\/tr>\n<tbody>\n<tr>\n<td>Blocked<\/td>\n<td>BLOCKED<\/td>\n<td>\u7ade\u4e89 synchronized \u9501\u5931\u8d25<\/td>\n<td>\u5176\u4ed6\u7ebf\u7a0b\u91ca\u653e\u9501<\/td>\n<td>\u7b49\u5f85\u9501&#xff08;monitor&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>Waiting<\/td>\n<td>WAITING<\/td>\n<td>obj.wait()\u3001thread.join()\u3001LockSupport.park()<\/td>\n<td>notify()\/notifyAll()\u3001unpark()\u3001join\u7ebf\u7a0b\u7ed3\u675f<\/td>\n<td>\u65e0\u9650\u671f\u7b49\u5f85<\/td>\n<\/tr>\n<tr>\n<td>Timed Waiting<\/td>\n<td>TIMED_WAITING<\/td>\n<td>Thread.sleep()\u3001wait(timeout)\u3001join(timeout)\u3001parkNanos()<\/td>\n<td>\u65f6\u95f4\u5230 \u6216 \u88ab\u63d0\u524d\u5524\u9192<\/td>\n<td>\u6709\u8d85\u65f6\u65f6\u95f4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4ee3\u7801\u793a\u4f8b&#xff08;\u4e09\u5927\u963b\u585e&#xff09;&#xff1a;<\/p>\n<p><span class=\"token comment\">\/\/ 1. BLOCKED&#xff08;\u9501\u963b\u585e&#xff09;<\/span><br \/>\n<span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u5982\u679c\u5176\u4ed6\u7ebf\u7a0b\u5df2\u7ecf\u62ff\u5230\u9501&#xff0c;\u8fd9\u91cc\u5c31\u4f1a\u8fdb\u5165 BLOCKED<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ 2. WAITING&#xff08;\u65e0\u9650\u7b49\u5f85&#xff09;<\/span><br \/>\n<span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>obj<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    obj<span class=\"token punctuation\">.<\/span><span class=\"token function\">wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>        <span class=\"token comment\">\/\/ \u5fc5\u987b\u5728 synchronized \u4e2d\u8c03\u7528<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ 3. TIMED_WAITING&#xff08;\u9650\u65f6\u7b49\u5f85&#xff09;<\/span><br \/>\n<span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>          <span class=\"token comment\">\/\/ \u6700\u5e38\u89c1<\/span><br \/>\nobj<span class=\"token punctuation\">.<\/span><span class=\"token function\">wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">2000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nt<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>\u91cd\u8981\u533a\u522b\u8bb0\u5fc6\u53e3\u8bc0&#xff1a;<\/p>\n<ul>\n<li>Blocked &#061; \u7b49\u9501&#xff08;synchronized&#xff09;<\/li>\n<li>Waiting &#061; \u4e3b\u52a8\u201c\u558a\u6682\u505c\u201d&#xff08;wait\/park\/join&#xff09;&#xff0c;\u9700\u8981\u522b\u4eba\u53eb\u9192<\/li>\n<li>Timed Waiting &#061; \u201c\u558a\u6682\u505c\u4f46\u5e26\u95f9\u949f\u201d&#xff08;sleep\/wait&#043;timeout&#xff09;<\/li>\n<\/ul>\n<p>\u72b6\u6001\u6d41\u8f6c&#xff1a;\u6240\u6709\u963b\u585e \u2192 \u6761\u4ef6\u6ee1\u8db3 \u2192 \u56de\u5230 \u5c31\u7eea<\/p>\n<h4>&#xff08;5&#xff09;\u7ec8\u6b62\u72b6\u6001&#xff08;Terminated&#xff09;<\/h4>\n<ul>\n<li>\u7279\u5f81&#xff1a;\u7ebf\u7a0b run() \u65b9\u6cd5\u6b63\u5e38\u7ed3\u675f\u3001\u629b\u51fa\u672a\u6355\u83b7\u5f02\u5e38\u3001\u6216\u88ab stop()&#xff08;\u5df2\u5e9f\u5f03&#xff0c;\u4e0d\u63a8\u8350&#xff09;\u3002<\/li>\n<li>\u6b64\u65f6\u7ebf\u7a0b&#xff1a;\u5f7b\u5e95\u6b7b\u4ea1&#xff0c;\u8d44\u6e90\u88ab\u56de\u6536&#xff0c;\u4e0d\u80fd\u518d start()&#xff08;\u4f1a\u629b IllegalThreadStateException&#xff09;\u3002<\/li>\n<li>\u4ee3\u7801\u793a\u4f8b&#xff1a;<\/li>\n<\/ul>\n<p><span class=\"token comment\">\/\/ run() \u6267\u884c\u5b8c\u81ea\u52a8\u8fdb\u5165 Terminated<\/span><br \/>\n<span class=\"token comment\">\/\/ \u6216\u7ebf\u7a0b\u5185\u629b\u51fa RuntimeException \u672a\u6355\u83b7<\/span><\/p>\n<p>\u72b6\u6001\u6d41\u8f6c&#xff1a;\u4e0d\u53ef\u9006&#xff01;\u7ec8\u6b62\u540e\u65e0\u6cd5\u56de\u5230\u4efb\u4f55\u5176\u4ed6\u72b6\u6001\u3002<\/p>\n<hr \/>\n<h3>3 \u4ee3\u7801\u6f14\u793a<\/h3>\n<p><span class=\"token keyword\">package<\/span> <span class=\"token class-name\">Thread_Lifecycle<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token comment\">\/**<br \/>\n * \u7ebf\u7a0b\u751f\u547d\u5468\u671f\u72b6\u6001\u6f14\u793a\u7c7b<br \/>\n * \u5c55\u793aJava\u7ebf\u7a0b\u76846\u79cd\u72b6\u6001&#xff1a;NEW\u3001RUNNABLE\u3001BLOCKED\u3001WAITING\u3001TIMED_WAITING\u3001TERMINATED<br \/>\n *\/<\/span><br \/>\n<span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ThreadStateDemo<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u5b9a\u4e49\u4e00\u4e2a\u5171\u4eab\u5bf9\u8c61\u9501&#xff0c;\u7528\u4e8e\u6f14\u793a\u7ebf\u7a0b\u540c\u6b65\u548c\u963b\u585e\u72b6\u6001<\/span><br \/>\n    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">Object<\/span> lock <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Object<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/**<br \/>\n     * \u4e3b\u65b9\u6cd5 &#8211; \u6f14\u793a\u5404\u79cd\u7ebf\u7a0b\u72b6\u6001<br \/>\n     * &#064;param args \u547d\u4ee4\u884c\u53c2\u6570<br \/>\n     * &#064;throws InterruptedException \u5f53\u7ebf\u7a0b\u88ab\u4e2d\u65ad\u65f6\u629b\u51fa<br \/>\n     *\/<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> <span class=\"token class-name\">InterruptedException<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/ 1. NEW \u72b6\u6001\u6f14\u793a<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u521b\u5efa\u7ebf\u7a0b\u5bf9\u8c61\u4f46\u672a\u8c03\u7528start()\u65b9\u6cd5&#xff0c;\u6b64\u65f6\u7ebf\u7a0b\u5904\u4e8eNEW\u72b6\u6001<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> t1 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u7ebf\u7a0b\u6267\u884c\u4f53 &#8211; \u5b9e\u9645\u5de5\u4f5c\u4ee3\u7801<\/span><br \/>\n            <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 \u8fdb\u5165\u8fd0\u884c\u72b6\u6001&#8230;&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u6b64\u65f6\u7ebf\u7a0b\u8fdb\u5165TIMED_WAITING\u72b6\u6001<\/span><br \/>\n                <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u5904\u7406\u4e2d\u65ad\u5f02\u5e38\u60c5\u51b5<\/span><br \/>\n                <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 \u88ab\u4e2d\u65ad&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u7ebf\u7a0b\u6267\u884c\u5b8c\u6bd5&#xff0c;\u5373\u5c06\u8fdb\u5165TERMINATED\u72b6\u6001<\/span><br \/>\n            <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 \u6267\u884c\u7ed3\u675f \u2192 TERMINATED&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t1&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  <span class=\"token comment\">\/\/ \u7ed9\u7ebf\u7a0b\u547d\u540d&#xff0c;\u4fbf\u4e8e\u8bc6\u522b\u548c\u8c03\u8bd5<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u83b7\u53d6\u5e76\u6253\u5370\u7ebf\u7a0b\u521b\u5efa\u540e\u7684\u521d\u59cb\u72b6\u6001&#xff08;\u5e94\u8be5\u662fNEW&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 \u521b\u5efa\u540e\u72b6\u6001: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> t1<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 2. RUNNABLE\u72b6\u6001\u6f14\u793a<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u8c03\u7528start()\u65b9\u6cd5\u542f\u52a8\u7ebf\u7a0b&#xff0c;\u7ebf\u7a0b\u8fdb\u5165RUNNABLE\u72b6\u6001&#xff08;\u5c31\u7eea\u6001&#xff09;<\/span><br \/>\n        <span class=\"token comment\">\/\/ JVM\u8c03\u5ea6\u5668\u4f1a\u5f88\u5feb\u5c06\u5176\u5206\u914dCPU\u65f6\u95f4\u7247\u5f00\u59cb\u6267\u884c<\/span><br \/>\n        t1<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u4e3b\u7ebf\u7a0b\u4f11\u7720100\u6beb\u79d2&#xff0c;\u7ed9t1\u7ebf\u7a0b\u65f6\u95f4\u5f00\u59cb\u6267\u884c<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u6b64\u65f6t1\u5e94\u8be5\u5df2\u7ecf\u5728\u6267\u884csleep()\u65b9\u6cd5&#xff0c;\u5904\u4e8eTIMED_WAITING\u72b6\u6001<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 start \u540e\u72b6\u6001: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> t1<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 3. BLOCKED\u72b6\u6001\u6f14\u793a&#xff08;\u9501\u7ade\u4e89\u573a\u666f&#xff09;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u521b\u5efa\u7b2c\u4e00\u4e2a\u7ebf\u7a0bt2&#xff0c;\u5b83\u4f1a\u83b7\u53d6lock\u5bf9\u8c61\u7684\u76d1\u89c6\u5668\u9501<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> t2 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u4f7f\u7528synchronized\u5173\u952e\u5b57\u83b7\u53d6lock\u5bf9\u8c61\u7684\u5185\u7f6e\u9501<\/span><br \/>\n            <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>lock<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t2 \u62ff\u5230\u9501&#xff0c;\u6b63\u5728\u6267\u884c&#8230;&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token comment\">\/\/ \u6301\u6709\u9501\u7684\u60c5\u51b5\u4e0b\u4f11\u77200.3\u79d2&#xff0c;\u671f\u95f4\u5176\u4ed6\u7ebf\u7a0b\u65e0\u6cd5\u83b7\u53d6\u8be5\u9501<\/span><br \/>\n                    <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">300<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> ignored<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token comment\">\/\/ \u5ffd\u7565\u4e2d\u65ad\u5f02\u5e38<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token comment\">\/\/ synchronized\u5757\u7ed3\u675f\u65f6\u81ea\u52a8\u91ca\u653e\u9501<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t2&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u521b\u5efa\u7b2c\u4e8c\u4e2a\u7ebf\u7a0bt3&#xff0c;\u5b83\u4e5f\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u540c\u4e00\u4e2alock\u5bf9\u8c61\u7684\u9501<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> t3 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u5f53t2\u6301\u6709\u9501\u65f6&#xff0c;t3\u6267\u884c\u5230\u8fd9\u91cc\u4f1a\u88ab\u963b\u585e<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u56e0\u4e3a\u65e0\u6cd5\u83b7\u53d6\u5df2\u88abt2\u5360\u7528\u7684\u9501&#xff0c;\u8fdb\u5165BLOCKED\u72b6\u6001<\/span><br \/>\n            <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>lock<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t3 \u62ff\u5230\u9501&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t3&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u542f\u52a8t2\u7ebf\u7a0b&#xff0c;\u8ba9\u5b83\u5148\u83b7\u53d6\u9501<\/span><br \/>\n        t2<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u7b49\u5f85200\u6beb\u79d2\u786e\u4fddt2\u5df2\u7ecf\u83b7\u53d6\u5230\u9501<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u542f\u52a8t3\u7ebf\u7a0b&#xff0c;\u6b64\u65f6t3\u4f1a\u56e0\u4e3a\u9501\u88ab\u5360\u7528\u800c\u8fdb\u5165BLOCKED\u72b6\u6001<\/span><br \/>\n        t3<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u7b49\u5f85300\u6beb\u79d2\u8ba9t3\u5145\u5206\u4f53\u9a8cBLOCKED\u72b6\u6001<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">300<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u6253\u5370t3\u7684\u72b6\u6001&#xff0c;\u5e94\u8be5\u663e\u793a\u4e3aBLOCKED<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t3 \u72b6\u6001&#xff08;\u5e94\u4e3a BLOCKED&#xff09;: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> t3<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 4. WAITING\u72b6\u6001\u6f14\u793a&#xff08;\u4f7f\u7528Object.wait()\u65b9\u6cd5&#xff09;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u521b\u5efat4\u7ebf\u7a0b\u7528\u4e8e\u6f14\u793a\u65e0\u9650\u671f\u7b49\u5f85\u72b6\u6001<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> t4 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u83b7\u53d6lock\u5bf9\u8c61\u7684\u9501<\/span><br \/>\n            <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>lock<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t4 \u8fdb\u5165 wait \u2192 WAITING&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                    <span class=\"token comment\">\/\/ \u8c03\u7528wait()\u65b9\u6cd5\u91ca\u653e\u9501\u5e76\u8fdb\u5165\u65e0\u9650\u671f\u7b49\u5f85\u72b6\u6001<\/span><br \/>\n                    <span class=\"token comment\">\/\/ \u76f4\u5230\u5176\u4ed6\u7ebf\u7a0b\u8c03\u7528notify()\/notifyAll()\u624d\u4f1a\u5524\u9192<\/span><br \/>\n                    lock<span class=\"token punctuation\">.<\/span><span class=\"token function\">wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token comment\">\/\/ \u5904\u7406\u53ef\u80fd\u7684\u4e2d\u65ad\u5f02\u5e38<\/span><br \/>\n                    e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t4&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u542f\u52a8t4\u7ebf\u7a0b<\/span><br \/>\n        t4<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u7b49\u5f85500\u6beb\u79d2\u786e\u4fddt4\u8fdb\u5165WAITING\u72b6\u6001<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u6253\u5370t4\u72b6\u6001&#xff0c;\u5e94\u8be5\u663e\u793a\u4e3aWAITING<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t4 \u72b6\u6001&#xff08;\u5e94\u4e3a WAITING&#xff09;: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> t4<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u5524\u9192\u5904\u4e8eWAITING\u72b6\u6001\u7684t4\u7ebf\u7a0b<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u9700\u8981\u5148\u83b7\u53d6\u76f8\u540c\u7684\u9501\u5bf9\u8c61\u624d\u80fd\u8c03\u7528notify()<\/span><br \/>\n        <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span>lock<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u5524\u9192\u5728lock\u5bf9\u8c61\u4e0a\u7b49\u5f85\u7684\u5355\u4e2a\u7ebf\u7a0b&#xff08;t4&#xff09;<\/span><br \/>\n            lock<span class=\"token punctuation\">.<\/span><span class=\"token function\">notify<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 5. TIMED_WAITING\u72b6\u6001\u6f14\u793a&#xff08;\u4f7f\u7528\u5e26\u8d85\u65f6\u7684join\u65b9\u6cd5&#xff09;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u521b\u5efat5\u7ebf\u7a0b\u7528\u4e8e\u6f14\u793a\u5b9a\u65f6\u7b49\u5f85<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> t5 <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ t5\u7ebf\u7a0b\u7b80\u5355\u5730\u4f11\u77200.5\u79d2<\/span><br \/>\n                <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> ignored<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u5ffd\u7565\u4e2d\u65ad\u5f02\u5e38<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t5&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u542f\u52a8t5\u7ebf\u7a0b<\/span><br \/>\n        t5<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u83b7\u53d6\u5f53\u524d\u4e3b\u7ebf\u7a0b\u7684\u5f15\u7528<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> main <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">currentThread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u521b\u5efa\u4e00\u4e2a\u8f85\u52a9\u7ebf\u7a0b\u6765\u6f14\u793a\u4e3b\u7ebf\u7a0b\u7684TIMED_WAITING\u72b6\u6001<\/span><br \/>\n        <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u8c03\u7528t5.join(2000)\u4f7f\u5f53\u524d\u7ebf\u7a0b&#xff08;\u8f85\u52a9\u7ebf\u7a0b&#xff09;\u7b49\u5f85t5\u7ebf\u7a0b\u6700\u591a0.2\u79d2<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u5982\u679c2\u79d2\u5185t5\u6ca1\u6709\u7ed3\u675f&#xff0c;\u5219\u7ee7\u7eed\u6267\u884c<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u8c03\u7528\u7ebf\u7a0b\u5728\u6b64\u671f\u95f4\u8fdb\u5165TIMED_WAITING\u72b6\u6001<\/span><br \/>\n                t5<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u5904\u7406\u4e2d\u65ad\u5f02\u5e38<\/span><br \/>\n                e<span class=\"token punctuation\">.<\/span><span class=\"token function\">printStackTrace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u7b49\u5f85500\u6beb\u79d2\u786e\u4fdd\u8f85\u52a9\u7ebf\u7a0b\u5df2\u7ecf\u5f00\u59cb\u7b49\u5f85<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u6253\u5370\u4e3b\u7ebf\u7a0b\u72b6\u6001&#xff0c;\u5e94\u8be5\u663e\u793a\u4e3aTIMED_WAITING<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e3b\u7ebf\u7a0b\u5728 join(2000) \u65f6\u72b6\u6001: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> main<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u7b49\u5f85\u6240\u6709\u6f14\u793a\u7ebf\u7a0b\u5b8c\u6210\u6267\u884c<\/span><br \/>\n        <span class=\"token comment\">\/\/ join()\u65b9\u6cd5\u4f7f\u5f53\u524d\u7ebf\u7a0b&#xff08;main\u7ebf\u7a0b&#xff09;\u7b49\u5f85\u6307\u5b9a\u7ebf\u7a0b\u6267\u884c\u5b8c\u6bd5<\/span><br \/>\n        t1<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        t2<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        t3<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        t4<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        t5<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u6253\u5370t1\u7ebf\u7a0b\u7684\u6700\u7ec8\u72b6\u6001&#xff0c;\u5e94\u8be5\u662fTERMINATED<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;t1 \u6700\u7ec8\u72b6\u6001: &#034;<\/span> <span class=\"token operator\">&#043;<\/span> t1<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090628-69a2b0142285f.gif\" alt=\"SNAP_2026-02-27_16-47-57\" \/><\/p>\n<h3>4 wait() \u548c sleep() \u7684 8 \u5927\u533a\u522b&#xff08;\u9762\u8bd5\u5fc5\u95ee&#xff09;<\/h3>\n<p>\u53e3\u8bc0\u603b\u7ed3&#xff1a;\u201cwait\u4f1a\u653e\u9501\u7761\u5927\u89c9&#xff0c;\u522b\u4eba\u53eb\u9192\u624d\u8d77\u5e8a&#xff1b;sleep\u62b1\u9501\u7761\u5c0f\u89c9&#xff0c;\u65f6\u95f4\u4e00\u5230\u81ea\u5df1\u9192\u3002\u201d<\/p>\n<table>\n<tr>\u5e8f\u53f7\u6bd4\u8f83\u9879wait()sleep()\u8bb0\u5fc6\u53e3\u8bc0<\/tr>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>\u6240\u5c5e\u7c7b<\/td>\n<td>Object<\/td>\n<td>Thread<\/td>\n<td>wait\u662f\u5bf9\u8c61\u7684&#xff0c;sleep\u662f\u7ebf\u7a0b\u7684<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>\u4f7f\u7528\u73af\u5883<\/td>\n<td>\u5fc5\u987b\u5728 synchronized \u5757\/\u65b9\u6cd5\u5185<\/td>\n<td>\u65e0\u9700 synchronized<\/td>\n<td>wait\u5fc5\u987b\u201c\u6709\u9501\u201d<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>\u662f\u5426\u91ca\u653e\u9501<\/td>\n<td>\u91ca\u653e\u5f53\u524d\u6301\u6709\u7684\u9501<\/td>\n<td>\u4e0d\u91ca\u653e\u9501<\/td>\n<td>wait\u4f1a\u653e\u9501&#xff0c;sleep\u6b7b\u6293\u7740<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>\u5524\u9192\u65b9\u5f0f<\/td>\n<td>notify\/notifyAll \u6216 interrupt<\/td>\n<td>\u65f6\u95f4\u5230\u81ea\u52a8\u9192&#xff0c;\u6216 interrupt<\/td>\n<td>wait\u9760\u522b\u4eba&#xff0c;sleep\u9760\u95f9\u949f<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>\u662f\u5426\u53ef\u8d85\u65f6<\/td>\n<td>\u6709\u91cd\u8f7d wait(long timeout)<\/td>\n<td>\u6709 sleep(long millis)<\/td>\n<td>\u4e24\u8005\u90fd\u53ef\u5e26\u65f6\u95f4<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>\u4e2d\u65ad\u54cd\u5e94<\/td>\n<td>\u629b InterruptedException \u5e76\u6e05\u9664\u4e2d\u65ad\u6807\u5fd7<\/td>\n<td>\u629b InterruptedException \u5e76\u6e05\u9664\u4e2d\u65ad\u6807\u5fd7<\/td>\n<td>\u884c\u4e3a\u4e00\u81f4<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>\u6240\u5c5e\u72b6\u6001&#xff08;\u6700\u5178\u578b&#xff09;<\/td>\n<td>WAITING \u6216 TIMED_WAITING<\/td>\n<td>TIMED_WAITING<\/td>\n<td>sleep\u4e00\u5b9a\u662f\u9650\u65f6\u7b49\u5f85<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>\u5047\u5524\u9192&#xff08;spurious wakeup&#xff09;<\/td>\n<td>\u53ef\u80fd\u53d1\u751f&#xff0c;\u5fc5\u987b\u653e\u5728 while \u5faa\u73af\u4e2d\u5224\u65ad\u6761\u4ef6<\/td>\n<td>\u4e0d\u5b58\u5728\u5047\u5524\u9192<\/td>\n<td>wait\u8981\u9632\u201c\u9a97\u9192\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>5 Thread.State \u679a\u4e3e\u6e90\u7801\u5206\u6790<\/h3>\n<p>\u7406\u89e3\u7ebf\u7a0b\u72b6\u6001\u6d41\u8f6c\u5bf9\u4e8e\u6392\u67e5\u6b7b\u9501\u548c\u6027\u80fd\u95ee\u9898\u81f3\u5173\u91cd\u8981\u3002Java \u7ebf\u7a0b\u4e3b\u8981\u6709\u4ee5\u4e0b 6 \u79cd\u72b6\u6001&#xff08;\u57fa\u4e8e Thread.State \u679a\u4e3e&#xff09;&#xff1a;<\/p>\n<li>NEW (\u65b0\u5efa)&#xff1a;\u521b\u5efa\u4e86\u7ebf\u7a0b\u5bf9\u8c61&#xff0c;\u4f46\u672a\u8c03\u7528 start()\u3002<\/li>\n<li>RUNNABLE (\u53ef\u8fd0\u884c)&#xff1a;\u8c03\u7528\u4e86 start()&#xff0c;\u6b63\u5728 JVM \u4e2d\u7b49\u5f85 CPU \u65f6\u95f4\u7247&#xff0c;\u6216\u8005\u6b63\u5728\u8fd0\u884c\u4e2d\u3002<\/li>\n<li>BLOCKED (\u963b\u585e)&#xff1a;\u7b49\u5f85\u83b7\u53d6\u76d1\u89c6\u5668\u9501&#xff08;synchronized \u9501&#xff09;\u3002<\/li>\n<li>WAITING (\u65e0\u9650\u7b49\u5f85)&#xff1a;\u8c03\u7528 wait(), join(), LockSupport.park()&#xff0c;\u9700\u88ab\u5176\u4ed6\u7ebf\u7a0b\u5524\u9192\u3002<\/li>\n<li>TIMED_WAITING (\u8ba1\u65f6\u7b49\u5f85)&#xff1a;\u8c03\u7528 sleep(time), wait(time)&#xff0c;\u65f6\u95f4\u5230\u4e86\u81ea\u52a8\u5524\u9192\u3002<\/li>\n<li>TERMINATED (\u7ec8\u6b62)&#xff1a;\u7ebf\u7a0b\u6267\u884c\u7ed3\u675f\u3002<\/li>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Thread<\/span> <span class=\"token keyword\">implements<\/span> <span class=\"token class-name\">Runnable<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">enum<\/span> <span class=\"token class-name\">State<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/**\u7ebf\u7a0b\u5c1a\u672a\u542f\u52a8\u3002\u8fd8\u672a\u8c03\u7528 start()\u3002*\/<\/span><br \/>\n        <span class=\"token constant\">NEW<\/span><span class=\"token punctuation\">,<\/span><\/p>\n<p>        <span class=\"token comment\">\/**\u7ebf\u7a0b\u5728 JVM \u4e2d\u6267\u884c\u4e2d&#xff08;\u5305\u62ec\u5c31\u7eea &#043; \u771f\u6b63\u8fd0\u884c &#043; OS \u8c03\u5ea6\u76f8\u5173\u7b49\u5f85&#xff09;\u3002<br \/>\n         * \u8fd9\u662f\u6700\u5bbd\u6cdb\u7684\u72b6\u6001\u3002*\/<\/span><br \/>\n        <span class=\"token constant\">RUNNABLE<\/span><span class=\"token punctuation\">,<\/span><\/p>\n<p>        <span class=\"token comment\">\/** \u7ebf\u7a0b\u5728\u7b49\u5f85 monitor \u9501&#xff08;synchronized \u5757\/\u65b9\u6cd5&#xff09;\u3002<br \/>\n         * \u5178\u578b\u573a\u666f&#xff1a;\u7ade\u4e89 synchronized \u9501\u5931\u8d25\u3002*\/<\/span><br \/>\n        <span class=\"token constant\">BLOCKED<\/span><span class=\"token punctuation\">,<\/span><\/p>\n<p>        <span class=\"token comment\">\/** \u7ebf\u7a0b\u5728\u65e0\u9650\u671f\u7b49\u5f85\u53e6\u4e00\u4e2a\u7ebf\u7a0b\u6267\u884c\u7279\u5b9a\u52a8\u4f5c\u3002<br \/>\n         * \u5178\u578b&#xff1a;wait()\u3001join()\u3001LockSupport.park()*\/<\/span><br \/>\n        <span class=\"token constant\">WAITING<\/span><span class=\"token punctuation\">,<\/span><\/p>\n<p>        <span class=\"token comment\">\/** \u7ebf\u7a0b\u5728\u6709\u9650\u65f6\u95f4\u5185\u7b49\u5f85\u53e6\u4e00\u4e2a\u7ebf\u7a0b\u6267\u884c\u7279\u5b9a\u52a8\u4f5c\u3002<br \/>\n         * \u5178\u578b&#xff1a;sleep()\u3001wait(timeout)\u3001join(timeout)\u3001parkNanos\u3001parkUntil*\/<\/span><br \/>\n        <span class=\"token constant\">TIMED_WAITING<\/span><span class=\"token punctuation\">,<\/span><\/p>\n<p>        <span class=\"token comment\">\/**\u7ebf\u7a0b\u5df2\u7ec8\u6b62&#xff08;run()\u6b63\u5e38\u7ed3\u675f\u6216\u5f02\u5e38\u7ed3\u675f&#xff09;\u3002<br \/>\n         * \u4e0d\u53ef\u518d start()\u3002*\/<\/span><br \/>\n        <span class=\"token constant\">TERMINATED<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090629-69a2b015d9fdb.png\" alt=\"image-20260227165355165\" \/><\/p>\n<h3>6 Java\u7ebf\u7a0b\u72b6\u6001\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u7ebf\u7a0b\u7684\u5bf9\u5e94\u5173\u7cfb<\/h3>\n<table>\n<tr>Java \u7ebf\u7a0b\u72b6\u6001\u64cd\u4f5c\u7cfb\u7edf\u5c42\u9762&#xff08;\u5178\u578b\u5bf9\u5e94&#xff09;\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>NEW<\/td>\n<td>\u65e0&#xff08;\u5c1a\u672a\u521b\u5efa\u5185\u6838\u7ebf\u7a0b&#xff09;<\/td>\n<td>Java \u5c42\u53ea\u662f\u5bf9\u8c61&#xff0c;start() \u540e\u624d\u771f\u6b63\u521b\u5efa pthread \/ kernel thread<\/td>\n<\/tr>\n<tr>\n<td>RUNNABLE<\/td>\n<td>Ready \/ Running<\/td>\n<td>\u5c31\u7eea\u961f\u5217\u4e2d\u7b49\u5f85\u8c03\u5ea6 \u6216 \u6b63\u5728 CPU \u4e0a\u6267\u884c<\/td>\n<\/tr>\n<tr>\n<td>BLOCKED<\/td>\n<td>Waiting (for mutex \/ monitor)<\/td>\n<td>\u7b49\u5f85\u4e92\u65a5\u9501&#xff08;synchronized \u5e95\u5c42\u662f monitorenter&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>WAITING<\/td>\n<td>Waiting \/ Suspended \/ Parked<\/td>\n<td>\u7b49\u5f85\u6761\u4ef6\u53d8\u91cf&#xff08;wait\/notify \u5e95\u5c42\u662f\u6761\u4ef6\u53d8\u91cf&#xff09;\u3001futex wait\u3001park \u7b49<\/td>\n<\/tr>\n<tr>\n<td>TIMED_WAITING<\/td>\n<td>Waiting with timeout<\/td>\n<td>\u540c\u4e0a&#xff0c;\u4f46\u8bbe\u7f6e\u4e86\u8d85\u65f6&#xff08;sleep\u3001wait(timeout)\u3001pthread_cond_timedwait \u7b49&#xff09;<\/td>\n<\/tr>\n<tr>\n<td>TERMINATED<\/td>\n<td>Zombie \u2192 Dead<\/td>\n<td>\u7ebf\u7a0b\u7ed3\u675f&#xff0c;\u7b49\u5f85\u88ab join \u6216\u7cfb\u7edf\u56de\u6536\u8d44\u6e90<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u603b\u7ed3\u5bf9\u5e94\u89c4\u5f8b&#xff1a;<\/p>\n<ul>\n<li>\n<p>Java \u6545\u610f\u7b80\u5316\u4e86\u72b6\u6001&#xff08;RUNNABLE \u5408\u5e76\u5c31\u7eea&#043;\u8fd0\u884c&#xff09;&#xff0c;\u9690\u85cf\u4e86\u64cd\u4f5c\u7cfb\u7edf\u7ec6\u8282<\/p>\n<\/li>\n<li>\n<p>BLOCKED \u662f\u6700\u201c\u91cd\u201d\u7684\u963b\u585e&#xff08;\u4e0e\u9501\u76f8\u5173&#xff09;&#xff0c;\u5176\u4ed6\u90fd\u662f\u201c\u8f7b\u91cf\u7ea7\u201d\u7b49\u5f85<\/p>\n<\/li>\n<li>\n<p>\u73b0\u4ee3 JVM&#xff08;HotSpot&#xff09;\u5e95\u5c42\u5927\u91cf\u4f7f\u7528 park\/unpark&#xff08;\u57fa\u4e8e futex \/ semaphore \u7b49&#xff09;&#xff0c;\u800c\u4e0d\u662f\u4f20\u7edf\u6761\u4ef6\u53d8\u91cf<\/p>\n<p>Grok\u7ed9\u51fa&#xff1a;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090631-69a2b0177192c.png\" alt=\"image-20260228120710977\" \/><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090631-69a2b017dde61.png\" alt=\"image-20260228120744125\" \/><\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090632-69a2b01843f7e.png\" alt=\"image-20260228113610377\" \/><\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>concurrent<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">TimeUnit<\/span><\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>concurrent<span class=\"token punctuation\">.<\/span>locks<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">LockSupport<\/span><\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span>concurrent<span class=\"token punctuation\">.<\/span>locks<span class=\"token punctuation\">.<\/span><\/span><span class=\"token class-name\">ReentrantLock<\/span><\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">ThreadStateDemo<\/span> <span class=\"token punctuation\">{<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">final<\/span> <span class=\"token class-name\">ReentrantLock<\/span> lock <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ReentrantLock<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> <span class=\"token class-name\">Exception<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/ 1. NEW \u72b6\u6001&#xff08;\u521b\u5efa\u4f46\u672astart&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> tNew <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t-new&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span>tNew<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;\u521anew\u51fa\u6765&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 2. RUNNABLE&#xff08;\u6b63\u5728\u8ba1\u7b97\u6216ready&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> tRunnable <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">long<\/span> start <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token boolean\">true<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">currentTimeMillis<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> start <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">20_000<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u5360\u7528CPU<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t-runnable&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tRunnable<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">800<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u8ba9\u5b83\u8dd1\u8d77\u6765<\/span><br \/>\n        <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span>tRunnable<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;RUNNABLE &#8211; \u5fd9\u5faa\u73af&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 3. BLOCKED&#xff08;synchronized\u4e89\u9501&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> tBlocked <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ThreadStateDemo<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">LockSupport<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parkNanos<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">TimeUnit<\/span><span class=\"token punctuation\">.<\/span><span class=\"token constant\">SECONDS<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">toNanos<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">30<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t-blocked&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u5148\u8ba9\u4e3b\u7ebf\u7a0b\u6301\u6709\u9501<\/span><br \/>\n        <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ThreadStateDemo<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            tBlocked<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">800<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span>tBlocked<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;BLOCKED &#8211; \u4e89synchronized\u9501&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 4. WAITING&#xff08;Object.wait() \u65e0\u8d85\u65f6&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> tWaiting <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">synchronized<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">ThreadStateDemo<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token class-name\">ThreadStateDemo<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">class<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ \u4f1a\u4e00\u76f4\u7b49<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">InterruptedException<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">currentThread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">interrupt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t-waiting&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tWaiting<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">800<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span>tWaiting<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;WAITING &#8211; Object.wait()&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 5. TIMED_WAITING&#xff08;\u51e0\u79cd\u5e38\u89c1\u5f62\u5f0f&#xff09;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span> tTimed <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">15000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  <span class=\"token comment\">\/\/ \u6700\u7b80\u5355\u7684\u4e00\u79cd<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u6216\u8005&#xff1a; LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(30));<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u6216\u8005&#xff1a; synchronized\u540e wait(15000)<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Exception<\/span> e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">currentThread<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">interrupt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;t-timed-waiting&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        tTimed<span class=\"token punctuation\">.<\/span><span class=\"token function\">start<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Thread<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sleep<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">800<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span>tTimed<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;TIMED_WAITING &#8211; Thread.sleep()&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ 6. \u8ba9\u7a0b\u5e8f\u4e0d\u8981\u9a6c\u4e0a\u9000\u51fa<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\\\\n\u6240\u6709\u6f14\u793a\u7ebf\u7a0b\u5df2\u542f\u52a8\u3002pid &#061; &#034;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token class-name\">ProcessHandle<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">current<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">pid<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8bf7\u5728\u65b0\u7ec8\u7aef\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u89c2\u5bdf&#xff08;\u5927\u7ea610\u79d2\u5185&#xff09;&#xff1a;&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  jstack &#034;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token class-name\">ProcessHandle<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">current<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">pid<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  top -H -p &#034;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token class-name\">ProcessHandle<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">current<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">pid<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  ps -eLo pid,lwp,stat,comm | grep t-&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;  cat \/proc\/&#034;<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token class-name\">ProcessHandle<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">current<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">pid<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token string\">&#034;\/task\/[LWP]\/stat   # \u770b\u7b2c3\u5217\u72b6\u6001\u5b57\u6bcd&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\\\\n\u6309\u56de\u8f66\u9000\u51fa&#8230;&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>in<span class=\"token punctuation\">.<\/span><span class=\"token function\">read<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">private<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">printThreadInfo<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">Thread<\/span> t<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">String<\/span> msg<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;%-25s : %-10s  (java state)%n&#034;<\/span><span class=\"token punctuation\">,<\/span> msg<span class=\"token punctuation\">,<\/span> t<span class=\"token punctuation\">.<\/span><span class=\"token function\">getState<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090633-69a2b0199fcf6.png\" alt=\"image-20260228112014228\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090636-69a2b01c49468.gif\" alt=\"SNAP_2026-02-28_11-57-12\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u751f\u547d\u5468\u671f<br \/>\n1 \u6574\u4f53\u751f\u547d\u5468\u671f\u72b6\u6001\u56fe<br \/>\n\u7ecf\u5178\u56fe&#xff1a;\u6e05\u6670\u533a\u5206 NEW \u2192 RUNNABLE&#xff08;\u5c31\u7eea\u8fd0\u884c&#xff09;\u2192 BLOCKED \/ WAITING \/ TIMED_WAITING \u2192 TERMINATED&#xff0c;\u5e76\u6807\u6ce8\u4e86\u6240\u6709\u8fdb\u5165\u65b9\u5f0f\u3002\u4e94\u72b6\u6001\u7ecf\u5178\u56fe&#xff1a;\u65b0\u5efa \u2192 \u5c31\u7eea \u2192 \u8fd0\u884c \u2192 \u963b\u585e \u2192 \u6b7b\u4ea1\u3002\u8d85\u7ea7\u8be6\u7ec6\u7248&#xff08;\u5e26\u6587\u5b57\u8bf4\u660e&#xff09;&#xff1a;\u628a\u5c31\u7eea\u7ec6\u5206\u4e3a\u201c\u7b49\u5f85CPU\u201d\u548c\u201c\u8fd0\u884c\u4e2d\u201d&#xff0c;\u963b\u585e\u5206\u4e3a\u5404\u79cd\u573a\u666f<\/p>\n","protected":false},"author":2,"featured_media":78930,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[99,190],"topic":[],"class_list":["post-78942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-java","tag-190"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/78942.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u751f\u547d\u5468\u671f 1 \u6574\u4f53\u751f\u547d\u5468\u671f\u72b6\u6001\u56fe \u7ecf\u5178\u56fe&#xff1a;\u6e05\u6670\u533a\u5206 NEW \u2192 RUNNABLE&#xff08;\u5c31\u7eea\u8fd0\u884c&#xff09;\u2192 BLOCKED \/ WAITING \/ TIMED_WAITING \u2192 TERMINATED&#xff0c;\u5e76\u6807\u6ce8\u4e86\u6240\u6709\u8fdb\u5165\u65b9\u5f0f\u3002\u4e94\u72b6\u6001\u7ecf\u5178\u56fe&#xff1a;\u65b0\u5efa \u2192 \u5c31\u7eea \u2192 \u8fd0\u884c \u2192 \u963b\u585e \u2192 \u6b7b\u4ea1\u3002\u8d85\u7ea7\u8be6\u7ec6\u7248&#xff08;\u5e26\u6587\u5b57\u8bf4\u660e&#xff09;&#xff1a;\u628a\u5c31\u7eea\u7ec6\u5206\u4e3a\u201c\u7b49\u5f85CPU\u201d\u548c\u201c\u8fd0\u884c\u4e2d\u201d&#xff0c;\u963b\u585e\u5206\u4e3a\u5404\u79cd\u573a\u666f\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/78942.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-28T09:06:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090620-69a2b00c28483.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/78942.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/78942.html\",\"name\":\"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-02-28T09:06:38+00:00\",\"dateModified\":\"2026-02-28T09:06:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/78942.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/78942.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/78942.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/78942.html","og_locale":"zh_CN","og_type":"article","og_title":"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u751f\u547d\u5468\u671f 1 \u6574\u4f53\u751f\u547d\u5468\u671f\u72b6\u6001\u56fe \u7ecf\u5178\u56fe&#xff1a;\u6e05\u6670\u533a\u5206 NEW \u2192 RUNNABLE&#xff08;\u5c31\u7eea\u8fd0\u884c&#xff09;\u2192 BLOCKED \/ WAITING \/ TIMED_WAITING \u2192 TERMINATED&#xff0c;\u5e76\u6807\u6ce8\u4e86\u6240\u6709\u8fdb\u5165\u65b9\u5f0f\u3002\u4e94\u72b6\u6001\u7ecf\u5178\u56fe&#xff1a;\u65b0\u5efa \u2192 \u5c31\u7eea \u2192 \u8fd0\u884c \u2192 \u963b\u585e \u2192 \u6b7b\u4ea1\u3002\u8d85\u7ea7\u8be6\u7ec6\u7248&#xff08;\u5e26\u6587\u5b57\u8bf4\u660e&#xff09;&#xff1a;\u628a\u5c31\u7eea\u7ec6\u5206\u4e3a\u201c\u7b49\u5f85CPU\u201d\u548c\u201c\u8fd0\u884c\u4e2d\u201d&#xff0c;\u963b\u585e\u5206\u4e3a\u5404\u79cd\u573a\u666f","og_url":"https:\/\/www.wsisp.com\/helps\/78942.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-02-28T09:06:38+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260228090620-69a2b00c28483.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"9 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/78942.html","url":"https:\/\/www.wsisp.com\/helps\/78942.html","name":"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-02-28T09:06:38+00:00","dateModified":"2026-02-28T09:06:38+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/78942.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/78942.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/78942.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"Java | \u7ebf\u7a0b - \u751f\u547d\u5468\u671f"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/78942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=78942"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/78942\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/78930"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=78942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=78942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=78942"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=78942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}