{"id":44484,"date":"2023-03-01T23:29:43","date_gmt":"2024-01-18T11:50:52","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/"},"modified":"2024-04-29T16:57:37","modified_gmt":"2024-04-29T08:57:37","slug":"%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/","title":{"rendered":"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09"},"content":{"rendered":"<h2>\u603b\u7ed3<\/h2>\n<p>Go \u8bed\u8a00\u89c4\u8303\u6982\u8ff0\u3002<\/p>\n<p>\u4e0a\u6b21\uff1a<br \/>\nGo\u8bed\u8a00\u89c4\u83036\uff08goroutine \u5e76\u53d1\u5904\u7406\uff09<\/p>\n<h2>\u8bf7\u7528\u4e2d\u6587\u8bf4\u51fa\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u7ed9\u51fa\u4e00\u4e2a\u9009\u9879\u3002<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">goroutine \u3068 channel<\/ul>\n<\/li>\n<\/ul>\n<p>channel\u306e\u57fa\u672c\u52d5\u4f5c<br \/>\ngoroutine + channel<br \/>\nclose<br \/>\nselect<\/p>\n<h2>\u534f\u7a0b\u548c\u901a\u9053<\/h2>\n<ul class=\"post-ul\">channel\u306e\u57fa\u672c\u64cd\u4f5c<\/ul>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ \u5909\u6570\u540d + chan + \u30c7\u30fc\u30bf\u578b<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">ch<\/span> <span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span>\r\n<span class=\"c\">\/\/ make\u95a2\u6570\u3067channel\u3068\u3057\u3066\u306e\u6a5f\u80fd\u3092\u3082\u305f\u305b\u308b(\u9001\u53d7\u4fe1\u3069\u3061\u3089\u3082\u53ef\u80fd)<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c\">\/\/ \u5ba3\u8a00\u3068\u540c\u6642\u306bchannel\u3068\u3057\u3066\u306e\u6a5f\u80fd\u3092\u3082\u305f\u305b\u308b(\u9001\u53d7\u4fe1\u3069\u3061\u3089\u3082\u53ef\u80fd)<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c\">\/\/ \u9001\u4fe1\u5c02\u7528channel<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">sendChan<\/span> <span class=\"o\">&lt;-<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span>\r\n<span class=\"c\">\/\/ \u53d7\u4fe1\u5c02\u7528channel<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">receiveChan<\/span> <span class=\"k\">chan<\/span><span class=\"o\">&lt;-<\/span> <span class=\"kt\">int<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ buffer\u30b5\u30a4\u30ba\uff08\u5bb9\u91cf\uff09\u3092\u8abf\u3079\u308b\u306b\u306f\u3001cap\u95a2\u6570\u3092\u4f7f\u3046<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">ch<\/span> <span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"nb\">cap<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">))<\/span> <span class=\"c\">\/\/ 0<\/span>\r\n\r\n<span class=\"c\">\/\/ make\u95a2\u6570\u306e\u7b2c\uff12\u5f15\u6570\u3067buffer\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\u3067\u304d\u308b<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"nb\">cap<\/span><span class=\"p\">(<\/span><span class=\"n\">ch2<\/span><span class=\"p\">))<\/span> <span class=\"c\">\/\/ 5<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ \u9001\u4fe1<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">100<\/span>\r\n<span class=\"c\">\/\/ \u30c7\u30fc\u30bf\u3092\u4e00\u3064\u9001\u4fe1\u3057\u305f\u305f\u3081\u3001ch\u306e\u30c7\u30fc\u30bf\u6570\u306f1<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">))<\/span> <span class=\"c\">\/\/ 1<\/span>\r\n<span class=\"c\">\/\/ \u9001\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 100<\/span>\r\n<span class=\"c\">\/\/ \u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3057\u305f\u305f\u3081\u3001\u30c7\u30fc\u30bf\u6570\u306f0<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">))<\/span> <span class=\"c\">\/\/ 0<\/span>\r\n<span class=\"c\">\/\/ \u30c7\u30fc\u30bf\u65700\u306e\u72b6\u614b\u3067\u3055\u3089\u306b\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ fatal error: all goroutines are asleep - deadlock!<\/span>\r\n\r\n<span class=\"c\">\/\/ \u9001\u4fe1\u3057\u305f\u30c7\u30fc\u30bf\u306e\u53d7\u4fe1\u5148\u3092\u5909\u6570\u306b\u3082\u3067\u304d\u308b<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">100<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">200<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">300<\/span>\r\n<span class=\"n\">i<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch2<\/span>\r\n<span class=\"c\">\/\/ \u30c7\u30fc\u30bf\u306e\u53d7\u4fe1\u306f\u3001\u9001\u4fe1\u3057\u305f\u9806\u306b\u306a\u308b<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 100<\/span>\r\n<span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch2<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 200<\/span>\r\n\r\n<span class=\"c\">\/\/ \u307e\u305f\u3001buffer\u30b5\u30a4\u30ba\u3092\u8d85\u3048\u305f\u6570\u306e\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u3068\u306a\u308b<\/span>\r\n<span class=\"n\">ch3<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">ch3<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">10<\/span>\r\n<span class=\"n\">ch3<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">20<\/span>\r\n<span class=\"n\">ch3<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">30<\/span>\r\n<span class=\"n\">ch3<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">40<\/span> <span class=\"c\">\/\/ fatal error: all goroutines are asleep - deadlock!<\/span>\r\n<\/code><\/pre>\n<p>\u4e0b\u9762\u662f\u8981\u6c42\u60a8\u63d0\u4f9b\u60a8\u7684\u62a4\u7167\u548c\u7b7e\u8bc1\u590d\u5370\u4ef6\u7684\u6587\u4ef6\u6e05\u5355\u3002<\/p>\n<ul class=\"post-ul\">goroutine + channel<\/ul>\n<p>\u901a\u9053\uff08Channel\uff09\u7528\u4e8e\u5728 Go \u534f\u7a0b\u4e4b\u95f4\u8fdb\u884c\u6570\u636e\u7684\u53d1\u9001\u548c\u63a5\u6536\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">goroutine<\/span><span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"k\">chan<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"k\">for<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"c\">\/\/ 3. \u9001\u4fe1\u3055\u308c\u305f\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3059\u308b<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">c<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch1<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"c\">\/\/ 2. goroutine\u304c\u8d70\u308b<\/span>\r\n    <span class=\"k\">go<\/span> <span class=\"n\">goroutine<\/span><span class=\"p\">(<\/span><span class=\"n\">ch1<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"k\">go<\/span> <span class=\"n\">goroutine<\/span><span class=\"p\">(<\/span><span class=\"n\">ch2<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"o\">:=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"m\">10<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"c\">\/\/ 1. channel\u306b\u30c7\u30fc\u30bf\u9001\u4fe1<\/span>\r\n        <span class=\"n\">ch1<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"s\">\"Hello\"<\/span>\r\n        <span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"s\">\"Golang\"<\/span>\r\n        <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Sleep<\/span><span class=\"p\">(<\/span><span class=\"m\">50<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Millisecond<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>Hello\r\nGolang\r\nHello\r\nGolang\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\nGolang\r\nHello\r\n<\/code><\/pre>\n<p>\u8bf7\u7528\u4e2d\u6587\u8fdb\u884c\u91ca\u4e49\uff0c\u53ea\u9700\u63d0\u4f9b\u4e00\u79cd\u9009\u9879\uff1a<\/p>\n<p>Can you help me find my way back to the hotel?<\/p>\n<ul class=\"post-ul\">close<\/ul>\n<p>\u521b\u5efa\u7684\u901a\u9053\u9ed8\u8ba4\u4e3a\u5f00\u653e\u72b6\u6001\uff0c\u4f46\u53ef\u4ee5\u660e\u786e\u5730\u5173\u95ed\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ make\u3067\u4f5c\u6210\u3057\u305fchannel\u306f\u30aa\u30fc\u30d7\u30f3\u72b6\u614b<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">1<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c\">\/\/ close\u95a2\u6570\u306e\u5f15\u6570\u306bchannel\u3092\u6e21\u3057\u3066\u3001\u660e\u793a\u7684\u306b\u30af\u30ed\u30fc\u30ba\u3059\u308b<\/span>\r\n<span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c\">\/\/ \u30af\u30ed\u30fc\u30ba\u3057\u305fchannel\u306b\u5bfe\u3057\u3066\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u3068runtime error\u306b\u306a\u308b<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">1<\/span> <span class=\"c\">\/\/ panic: send on closed channel<\/span>\r\n<\/code><\/pre>\n<p>\u5bf9\u4e8e\u5df2\u5173\u95ed\u7684\u9891\u9053\uff0c\u4e0d\u53ef\u53d1\u9001\u4fe1\u606f\uff0c\u4f46\u53ef\u63a5\u6536\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c\">\/\/ \u30af\u30ed\u30fc\u30ba\u3057\u305fchannel\u304b\u3089\u306e\u53d7\u4fe1\u306f\u53ef\u80fd<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 0<\/span>\r\n<\/code><\/pre>\n<p>\u5982\u679c\u63a5\u6536\u4fe1\u53f7\uff0c\u5c31\u53ef\u4ee5\u5206\u914d\u4e24\u4e2a\u53d8\u91cf\u3002<br \/>\n\u7b2c\u4e8c\u4e2a\u53d8\u91cf\u53ef\u4ee5\u7528\u5e03\u5c14\u578b\u6765\u63a5\u6536\u901a\u9053\u7684\u6253\u5f00\/\u5173\u95ed\u72b6\u6001\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">1<\/span>\r\n<span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch<\/span>\r\n<span class=\"c\">\/\/ \u30aa\u30fc\u30d7\u30f3\u72b6\u614b\u306e\u305f\u3081\u3001true<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 1 true<\/span>\r\n\r\n<span class=\"c\">\/\/ channel\u3092\u30af\u30ed\u30fc\u30ba<\/span>\r\n<span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch<\/span>\r\n<span class=\"c\">\/\/ \u30af\u30ed\u30fc\u30ba\u3057\u305f\u305f\u3081\u3001false<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 0 false<\/span>\r\n\r\n<span class=\"c\">\/\/ \u203b \u6b63\u78ba\u306b\u306f\u3001channel\u306ebuffer\u304c\u7a7a\u4e14\u3064\u30af\u30ed\u30fc\u30ba\u72b6\u614b\u304cfalse\u304c\u8fd4\u3063\u3066\u304f\u308b\u6761\u4ef6<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">2<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">2<\/span>\r\n<span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch3<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">i2<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch2<\/span>\r\n<span class=\"c\">\/\/ channel\u306f\u30af\u30ed\u30fc\u30ba\u3057\u305f\u304c\u3001\u30c7\u30fc\u30bf\u3092\u53d7\u4fe1\u3057\u3066\u3044\u3066\u7a7a\u3067\u306f\u306a\u3044\u305f\u3081\u3001true\u3068\u306a\u308b<\/span>\r\n<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i2<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ 3 true<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528range\u5faa\u73af\u904d\u5386\u901a\u9053\u65f6\u7684\u6ce8\u610f\u4e8b\u9879\u662f\uff0c\u5982\u679c\u4e0d\u660e\u786e\u5173\u95ed\u901a\u9053\uff0c\u5373\u4f7f\u53d6\u51fa\u4e86\u6240\u6709\u63a5\u6536\u5230\u7684\u503c\uff0c\u5faa\u73af\u4e5f\u4f1a\u7ee7\u7eed\u8fdb\u884c\uff0c\u4ece\u800c\u5bfc\u81f4\u9519\u8bef\u3002<\/p>\n<p>\u5982\u679c\u4e0d\u5173\u95ed\u5b83\uff0c\u7b2c\u56db\u6b21\u5faa\u73af\u5c06\u4f1a\u53d1\u751f\u6b7b\u9501\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">1<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">2<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">3<\/span>\r\n\r\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">ch<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"c\">\/\/ 1<\/span>\r\n        <span class=\"c\">\/\/ 2<\/span>\r\n        <span class=\"c\">\/\/ 3<\/span>\r\n        <span class=\"c\">\/\/ fatal error: all goroutines are asleep - deadlock!<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u9700\u8981\u4fdd\u6301\u5173\u95ed\u72b6\u6001\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">1<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">2<\/span>\r\n    <span class=\"n\">ch<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"m\">3<\/span>\r\n\r\n    <span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">ch<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"c\">\/\/ 1<\/span>\r\n        <span class=\"c\">\/\/ 2<\/span>\r\n        <span class=\"c\">\/\/ 3<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u4e0egoroutine \u7ed3\u5408\u6765\u8fdb\u884c\u64cd\u4f5c\u9a8c\u8bc1\u3002<br \/>\n\u5faa\u73af100\u6b21\u63a5\u6536\u6570\u636e\uff0c\u5e76\u5c1d\u8bd5\u4f7f\u7528goroutine\u5c06\u63a5\u6536\u5230\u7684\u6570\u636e\u8f93\u51fa\uff0c\u76f4\u5230\u901a\u9053\u5173\u95ed\u4e3a\u6b62\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">test<\/span><span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"n\">s<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"k\">for<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">c<\/span>\r\n        <span class=\"c\">\/\/ channel\u304c\u30af\u30ed\u30fc\u30ba\u3057\u305f\u3089\u3001break<\/span>\r\n        <span class=\"k\">if<\/span> <span class=\"o\">!<\/span><span class=\"n\">ok<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">break<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">s<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"c\">\/\/ \u6700\u5f8c\u306bEND\u3092\u51fa\u529b<\/span>\r\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">\"END\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch1<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">2<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"k\">go<\/span> <span class=\"n\">test<\/span><span class=\"p\">(<\/span><span class=\"n\">ch1<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Goloang\"<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"k\">go<\/span> <span class=\"n\">test<\/span><span class=\"p\">(<\/span><span class=\"n\">ch1<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Java\"<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"k\">go<\/span> <span class=\"n\">test<\/span><span class=\"p\">(<\/span><span class=\"n\">ch1<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Python\"<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"o\">:=<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"m\">100<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"c\">\/\/ channel\u306b\u30c7\u30fc\u30bf\u304c\u9001\u4fe1\u3055\u308c\u305f\u3089\u30013\u3064\u306egoroutine\u306e\u3069\u308c\u304b\u304c\u52d5\u304f<\/span>\r\n        <span class=\"n\">ch1<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"n\">i<\/span>\r\n    <span class=\"p\">}<\/span>\r\n    <span class=\"c\">\/\/ \u30eb\u30fc\u30d7\u304c\u7d42\u308f\u3063\u305f\u3089\u30af\u30ed\u30fc\u30ba\u3059\u308b<\/span>\r\n    <span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"n\">ch1<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"c\">\/\/ close\u3057\u305f\u5f8c\u306bgoroutine\u306e\u51e6\u7406\u5b8c\u4e86\u307e\u3067\u3061\u3087\u3063\u3068\u5f85\u3064<\/span>\r\n    <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Sleep<\/span><span class=\"p\">(<\/span><span class=\"m\">1<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Second<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u8bf7\u7528\u4e2d\u6587\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u91ca\u4e49\uff0c\u53ea\u9700\u8981\u4e00\u79cd\u9009\u9879\uff1a<\/p>\n<p>There are many reasons why people enjoy traveling. Some people enjoy traveling to experience new cultures and see different sights. Others enjoy the adventure and thrill of exploring new places. Additionally, traveling can provide a break from daily routines and allow people to relax and recharge. Finally, traveling also offers the opportunity to create lifelong memories and meet new people.<\/p>\n<ul class=\"post-ul\">select<\/ul>\n<p>\u7528\u4e8e\u8fdb\u884c\u591a\u4e2a\u9891\u9053\u7684\u53d1\u9001\u548c\u63a5\u6536\u7684\u8bed\u6cd5\u7ed3\u6784\u3002<\/p>\n<p>\u5982\u679c\u60f3\u8981\u5904\u7406\u591a\u4e2a\u901a\u9053\u800c\u4e0d\u4f7f\u7528select\uff0c\u5f53\u4efb\u4f55\u4e00\u4e2a\u901a\u9053\u7684\u53d1\u9001\u6216\u63a5\u6536\u64cd\u4f5c\u5931\u8d25\u65f6\uff0c\u540e\u7eed\u5904\u7406\u5c06\u65e0\u6cd5\u6267\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch1<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">string<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"c\">\/\/ ch2\u306e\u307f\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b<\/span>\r\n    <span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"s\">\"Golang\"<\/span>\r\n\r\n    <span class=\"c\">\/\/ ch1\u306f\u7a7a\u306a\u306e\u3067\u3001\u30a8\u30e9\u30fc<\/span>\r\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">ch1<\/span><span class=\"p\">)<\/span> <span class=\"c\">\/\/ fatal error: all goroutines are asleep - deadlock!<\/span>\r\n    <span class=\"c\">\/\/ \u30c7\u30fc\u30bf\u306f\u53d7\u4fe1\u3057\u3066\u3044\u308b\u304c\u3001ch1\u3067\u30a8\u30e9\u30fc\u306b\u306a\u308a\u3001\u51e6\u7406\u304c\u6b62\u307e\u3063\u3066\u3057\u307e\u3046<\/span>\r\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"o\">&lt;-<\/span><span class=\"n\">ch2<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u70ba\u4e86\u907f\u514d\u4e0a\u8ff0\u554f\u984c\uff0c\u53ef\u4ee5\u4f7f\u7528select\u4f86\u57f7\u884c\u591a\u500b\u901a\u9053\u800c\u7121\u9700\u505c\u6b62goroutine\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"n\">ch1<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">int<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">ch2<\/span> <span class=\"o\">:=<\/span> <span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"k\">chan<\/span> <span class=\"kt\">string<\/span><span class=\"p\">,<\/span> <span class=\"m\">3<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"c\">\/\/ ch2\u306e\u307f\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b<\/span>\r\n    <span class=\"n\">ch2<\/span> <span class=\"o\">&lt;-<\/span> <span class=\"s\">\"Golang\"<\/span>\r\n\r\n    <span class=\"c\">\/\/ switch\u3068\u306f\u9055\u3044\u3001\u3069\u306ecase\u304c\u5b9f\u884c\u3055\u308c\u308b\u304b\u306f\u30e9\u30f3\u30c0\u30e0<\/span>\r\n    <span class=\"k\">select<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"c\">\/\/ ch1\u306b\u53d7\u4fe1\u6642\u306e\u51e6\u7406<\/span>\r\n    <span class=\"k\">case<\/span> <span class=\"n\">v1<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch1<\/span><span class=\"o\">:<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">v1<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"c\">\/\/ ch2\u306b\u53d7\u4fe1\u6642\u306e\u51e6\u7406<\/span>\r\n    <span class=\"k\">case<\/span> <span class=\"n\">v2<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ch2<\/span><span class=\"o\">:<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"n\">v2<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"c\">\/\/ case\u306b\u5f53\u3066\u306f\u307e\u3089\u306a\u3044\u6642\u306e\u51e6\u7406<\/span>\r\n    <span class=\"k\">default<\/span><span class=\"o\">:<\/span>\r\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">\"default\"<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u4e0b\u4e00\u6b21<\/h2>\n<p>Go \u8bed\u8a00\u89c4\u83038\uff08\u6307\u9488\uff09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u603b\u7ed3 Go \u8bed\u8a00\u89c4\u8303\u6982\u8ff0\u3002 \u4e0a\u6b21\uff1a Go\u8bed\u8a00\u89c4\u83036\uff08goroutine \u5e76\u53d1\u5904\u7406\uff09 \u8bf7\u7528\u4e2d\u6587\u8bf4\u51fa\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-44484","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09 - Blog - Silicon Cloud<\/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.silicloud.com\/zh\/blog\/\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09\" \/>\n<meta property=\"og:description\" content=\"\u603b\u7ed3 Go \u8bed\u8a00\u89c4\u8303\u6982\u8ff0\u3002 \u4e0a\u6b21\uff1a Go\u8bed\u8a00\u89c4\u83036\uff08goroutine \u5e76\u53d1\u5904\u7406\uff09 \u8bf7\u7528\u4e2d\u6587\u8bf4\u51fa\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-18T11:50:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T08:57:37+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/\",\"name\":\"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-01-18T11:50:52+00:00\",\"dateModified\":\"2024-04-29T08:57:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09 - Blog - Silicon Cloud","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.silicloud.com\/zh\/blog\/\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\/","og_locale":"zh_CN","og_type":"article","og_title":"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09","og_description":"\u603b\u7ed3 Go \u8bed\u8a00\u89c4\u8303\u6982\u8ff0\u3002 \u4e0a\u6b21\uff1a Go\u8bed\u8a00\u89c4\u83036\uff08goroutine \u5e76\u53d1\u5904\u7406\uff09 \u8bf7\u7528\u4e2d\u6587\u8bf4\u51fa\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-01-18T11:50:52+00:00","article_modified_time":"2024-04-29T08:57:37+00:00","author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/","name":"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-01-18T11:50:52+00:00","dateModified":"2024-04-29T08:57:37+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u8bf7\u4ee5\u4e2d\u6587\u539f\u751f\u8bed\u8a00\u91cd\u65b0\u8868\u8fbe\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff1aGo\u8bed\u8a00\u89c4\u8303\u7b2c7\u90e8\u5206\uff08\u5e76\u53d1goroutine\u548c\u901a\u9053\uff09"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%af%b7%e4%bb%a5%e4%b8%ad%e6%96%87%e5%8e%9f%e7%94%9f%e8%af%ad%e8%a8%80%e9%87%8d%e6%96%b0%e8%a1%a8%e8%be%be%e4%bb%a5%e4%b8%8b%e5%86%85%e5%ae%b9%ef%bc%8c%e5%8f%aa%e9%9c%80%e8%a6%81%e4%b8%80%e4%b8%aa\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=44484"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44484\/revisions"}],"predecessor-version":[{"id":86495,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44484\/revisions\/86495"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=44484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=44484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=44484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}