{"id":208139,"date":"2025-07-08T13:26:20","date_gmt":"2025-07-08T05:26:20","guid":{"rendered":"https:\/\/server.hk\/cnblog\/208139\/"},"modified":"2025-07-08T13:26:20","modified_gmt":"2025-07-08T05:26:20","slug":"%e4%b8%ba%e4%bb%80%e4%b9%88%e5%ae%83%e4%b8%8d%e8%83%bd%e6%89%93%e5%8d%b0%e4%bb%b7%e5%80%bc","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/208139\/","title":{"rendered":"\u4e3a\u4ec0\u4e48\u5b83\u4e0d\u80fd\u6253\u5370\u4ef7\u503c"},"content":{"rendered":"<p><b><\/b> <\/p>\n<p>\u5f53\u524d\u4f4d\u7f6e\uff1a <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>\u4e3a\u4ec0\u4e48\u5b83\u4e0d\u80fd\u6253\u5370\u4ef7\u503c<\/span><\/p>\n<p><span>\u6765\u6e90\uff1astackoverflow<\/span><br \/>\n<span>2024-04-29 14:36:37<\/span><br \/>\n<span><i><\/i>0\u6d4f\u89c8<\/span><br \/>\n<span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>\u4eb2\u7231\u7684\u7f16\u7a0b\u5b66\u4e60\u7231\u597d\u8005\uff0c\u5982\u679c\u4f60\u70b9\u5f00\u4e86\u8fd9\u7bc7\u6587\u7ae0\uff0c\u8bf4\u660e\u4f60\u5bf9\u300a\u4e3a\u4ec0\u4e48\u5b83\u4e0d\u80fd\u6253\u5370\u4ef7\u503c\u300b\u5f88\u611f\u5174\u8da3\u3002\u672c\u7bc7\u6587\u7ae0\u5c31\u6765\u7ed9\u5927\u5bb6\u8be6\u7ec6\u89e3\u6790\u4e00\u4e0b\uff0c\u4e3b\u8981\u4ecb\u7ecd\u4e00\u4e0b\uff0c\u5e0c\u671b\u6240\u6709\u8ba4\u771f\u8bfb\u5b8c\u7684\u7ae5\u978b\u4eec\uff0c\u90fd\u6709\u5b9e\u8d28\u6027\u7684\u63d0\u9ad8\u3002<\/p>\n<p> \u95ee\u9898\u5185\u5bb9<br \/>\n <\/p>\n<p>\u6211\u7f16\u5199\u4e86\u4e00\u4e2a\u9000\u51fa\u548c\u540c\u6b65\u961f\u5217\u901a\u9053<\/p>\n<p>\u9884\u671f\u6253\u5370\u5982\u4e0b\uff0c\u4f46\u6ca1\u6709\u53d1\u751f\uff0c g1 \u6216 g2 \u5c06\u8fde\u7eed\u6253\u5370\u503c 2 \u6211\u77e5\u9053\u65e0\u7f13\u51b2\u901a\u9053\u540c\u6b65\u89c4\u5219\uff0c\u4f46\u4f3c\u4e4e\u6211\u8bef\u89e3\u4e86\u5b83<\/p>\n<pre>g1 0 \ng2 1 \ng1 1\ng2 1\ng1 2\ng2 2<\/pre>\n<p>\u53bb\u6f14\u793a\u6253\u5370\u6216\u8005\u4ee3\u7801\u7247\u6bb5<\/p>\n<pre>package main\n\nimport (\n    \"fmt\"\n)\n\nfunc main() {\n    exit := make(chan struct{})\n    transfer := make(chan int)\n\n    go func() {\n        defer func() {\n            close(exit)\n        }()\n        for i := 0; i &lt; 20; i++ {\n            transfer &lt;- i\n            fmt.Println(\"g1\\t\", i) \/\/ 1\n\n        }\n    }()\n\n    go func() {\n        for i := 0; i &lt; 20; i++ {\n            &lt;-transfer\n            fmt.Println(\"g2\\t\", i) \/\/ 3  4\n        }\n    }()\n    &lt;-exit\n}\n<\/pre>\n<p> <\/p>\n<h2>\u89e3\u51b3\u65b9\u6848<\/h2>\n<p> <\/p>\n<p>\u56e0\u6b64\uff0c\u5f53\u60a8\u4f7f\u7528\u65e0\u7f13\u51b2\u901a\u9053\u65f6\uff0c\u5b83\u662f\u4e00\u4e2a\u963b\u585e\u4e8b\u52a1\uff1b\u53d1\u751f\u7684\u60c5\u51b5\u662f\u4e24\u4e2a go \u4f8b\u7a0b\u90fd\u5728\u67d0\u4e2a\u70b9\u505c\u6b62\u5e76\u4e14\u9700\u8981\u6267\u884c\u4e8b\u52a1\uff1b\u4ea4\u6613\u4e00\u53d1\u751f\uff1b\u73b0\u5728\u4e24\u4e2a go \u4f8b\u7a0b\u90fd\u53ef\u4ee5\u7ee7\u7eed\u524d\u8fdb\uff0c\u8c03\u5ea6\u7a0b\u5e8f\u9700\u8981\u51b3\u5b9a\u54ea\u4e2a go \u4f8b\u7a0b\u5148\u8fd0\u884c\u3002g1 \u548c g2 \u5e76\u4e0d\u662f 100% \u7684\u673a\u4f1a\u6309\u76f8\u540c\u7684\u987a\u5e8f\u6253\u5370\u3002<\/p>\n<p>\u90a3\u662f\u56e0\u4e3a\u6709\u6570\u636e\u64e6\u9664\u5728\u8fd9\u91cc\u3002<\/p>\n<p>\u4f60\u4e0d\u80fd\u786e\u5b9a\u4e4b\u540e <code>transfer &lt;- i<\/code> \u548c <code>fmt.Println(\"g1\\t\", i) \/\/ 1<\/code> \u4e4b\u524d\u4e0d\u5e94\u6709\u4e0a\u4e0b\u6587\u5207\u6362\u5230\u53e6\u4e00\u4e2a\u4f8b\u7a0b\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u5982\u679c\u60a8\u5e0c\u671b\u8fd9\u662f\u539f\u5b50\u6027\u7684\uff0c\u60a8\u5e94\u8be5\u5728\u6b64\u5904\u6dfb\u52a0\u53e6\u4e00\u4e2a\u540c\u6b65\u673a\u5236<\/p>\n<p>\u672c\u7bc7\u5173\u4e8e\u300a\u4e3a\u4ec0\u4e48\u5b83\u4e0d\u80fd\u6253\u5370\u4ef7\u503c\u300b\u7684\u4ecb\u7ecd\u5c31\u5230\u6b64\u7ed3\u675f\u5566\uff0c\u4f46\u662f\u5b66\u65e0\u6b62\u5883\uff0c\u60f3\u8981\u4e86\u89e3\u5b66\u4e60\u66f4\u591a\u5173\u4e8eGolang\u7684\u76f8\u5173\u77e5\u8bc6\uff0c\u8bf7\u5173\u6ce8\u516c\u4f17\u53f7\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u524d\u4f4d\u7f6e\uff1a &gt; &gt; &#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-208139","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=208139"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208139\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=208139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=208139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=208139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}