{"id":4484,"date":"2021-11-18T14:58:09","date_gmt":"2021-11-18T05:58:09","guid":{"rendered":"https:\/\/wp.kobore.net\/?p=4484"},"modified":"2021-11-18T15:42:08","modified_gmt":"2021-11-18T06:42:08","slug":"post-4484","status":"publish","type":"post","link":"https:\/\/wp.kobore.net\/2021\/11\/18\/post-4484\/","title":{"rendered":"\u30b9\u30ec\u30c3\u30c9\u306e\u4e2d\u3067\u4f5c\u3063\u305f\u69cb\u9020\u4f53\u3068\u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5"},"content":{"rendered":"

\u3053\u308c\u307e\u3067C\/C++\u8a00\u8a9e\u3067\u4f5c\u3063\u3066\u304d\u305f\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u3001golang\u3067\u4f5c\u308a\u304b\u3048\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n

\u3053\u308c\u307e\u3067\u3082\u30e1\u30a4\u30f3\u95a2\u6570\u306b\u7e1b\u3089\u308c\u305a\u306b\u3001\u30b9\u30ec\u30c3\u30c9\u3092\u81ea\u7531\u306b\u52d5\u304d\u56de\u3059\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u306f\u4f5c\u3063\u3066\u304d\u305f\u306e\u3067\u3059\u304c\u3001C\/C++\u306e\u30b9\u30ec\u30c3\u30c9\u306f\u3001\u3044\u304b\u3093\u305b\u3093\u30e1\u30e2\u30ea\u30b5\u30a4\u30ba\u304c\u5927\u304d\u304f\u3001\u4e07\u306e\u5358\u4f4d\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u306f\u8010\u3048\u3089\u308c\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n

\u305d\u3093\u306a\u611f\u3058\u3067\u3001golang\u306b\u4e57\u308a\u63db\u3048\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001\u8272\u3005\u6587\u6cd5\u304c\u9762\u5012\u304f\u3055\u3044\u3067\u3059\u3002<\/p>\n

\u4f8b\u3048\u3070\u3001\u30b9\u30ec\u30c3\u30c9\u306e\u4e2d\u3067\u4f5c\u3063\u305f\u69cb\u9020\u4f53\u3068\u901a\u4fe1\u3092\u884c\u3046\u65b9\u6cd5\u3068\u3057\u3066\u3001go func() \u3067\u8fd4\u308a\u5024(return)\u304c\u6b32\u3057\u3044\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3060\u3051\u3069\u3001\u8003\u3048\u3066\u307f\u308c\u3070\u3001\u30b9\u30ec\u30c3\u30c9\u5316\u3057\u305ffunc()\u306f\u3001\u305d\u308c\u304c\u7d42\u4e86\u3059\u308b\u307e\u3067return\u5024\u3092\u8fd4\u3059\u8a33\u306a\u3044\u3068\u6c17\u304c\u3064\u304d\u307e\u3057\u305f\u3002<\/p>\n

\u3060\u304b\u3089,<\/p>\n

go func_xxxx()<\/p>\n

\u306f\u3001<\/p>\n

go i:= finc_xxxx()<\/p>\n

\u3082\u30c0\u30e1\u3060\u3057<\/p>\n

i := go func_xxxx()<\/p>\n

\u3082\u30c0\u30e1\u3068\u3044\u3046\u3053\u3068\u3067 \u2015\u2015 \u3067\u306f\u3001\u30b9\u30ec\u30c3\u30c9\u306e\u4e2d\u306e\u60c5\u5831\u306b\u3069\u3046\u3084\u3063\u3066\u30a2\u30af\u30bb\u30b9\u3059\u308c\u3070\u3044\u3044\u304b\u304c\u3001\u5206\u304b\u308a\u307e\u305b\u3093\u3002<\/p>\n

\u3068\u3059\u308c\u3070\u3001\u30b9\u30ec\u30c3\u30c9\u5074\u3067\u9001\u53d7\u4fe1\u6a5f\u80fd\u3092\u6301\u305f\u305b\u308b\u3053\u3068\u306b\u306a\u308b\u306e\u304b\u306a\u3041\u3001\u3068\u601d\u3063\u3066\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n

package main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\t\"sync\"\r\n)\r\n\r\ntype BUS struct {\r\n\tnumber int\r\n}\r\n\r\nfunc bus_func(i int, wg *sync.WaitGroup, ch chan int) {\r\n\tdefer wg.Done()\r\n\r\n\tbus := BUS{}\r\n\tbus.number = i\r\n\r\n\tpointer_bus := &bus\r\n\r\n\tfmt.Println(pointer_bus)\r\n\r\n\tfor {\r\n\t\tselect {\r\n\t\tcase v := <-ch:\r\n\t\t\tfmt.Println(i, v)\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\nfunc main() {\r\n\tvar wg sync.WaitGroup\r\n\tdefer wg.Wait()\r\n\r\n\tc := make(chan int)\r\n\r\n\t\/\/ \u30d0\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u751f\u6210 3\u53f0\r\n\tfor i := 0; i < 3; i++ {\r\n\t\twg.Add(1)\r\n\r\n\t\tgo bus_func(i, &wg, c)\r\n\t}\r\n\r\n\t\/\/ \u30d0\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u308b\r\n\r\n\tc <- 50\r\n\tc <- 30\r\n\tc <- 10\r\n\r\n\tc <- 50\r\n\tc <- 30\r\n\tc <- 10\r\n\r\n\tc <- 50\r\n\tc <- 30\r\n\tc <- 10\r\n\r\n}<\/code><\/pre>\n

\u305f\u3060\u3001\u3053\u306e\u5834\u5408\u3001c\u30c1\u30e3\u30cd\u30eb\u306f\u9069\u5f53\u306b\u6295\u3052\u3089\u308c\u308b\u306e\u3067\u3001\u3069\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u5c4a\u304f\u304b\u5206\u304b\u3089\u306a\u3044\u306e\u3067\u3001\u3082\u3046\u5c11\u3057\u5de5\u592b\u3092\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n

package main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\t\"sync\"\r\n)\r\n\r\ntype BUS struct {\r\n\tnumber int\r\n}\r\n\r\nfunc bus_func(i int, wg *sync.WaitGroup, ch chan int) {\r\n\tdefer wg.Done()\r\n\r\n\tbus := BUS{}\r\n\tbus.number = i\r\n\r\n\tpointer_bus := &bus\r\n\r\n\tfmt.Println(pointer_bus)\r\n\r\n\tfor {\r\n\t\tselect {\r\n\t\tcase v := <-ch:\r\n\t\t\tfmt.Println(i, v)\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\/\/var c = make([]chan int, 3) \/\/ \u9593\u9055\u3044\r\n\r\nvar c [3]chan int \/\/ \u30c1\u30e3\u30cd\u30eb\u3092\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3067\u7f6e\u304f\u65b9\u6cd5\u306e\u3001\u73fe\u6642\u70b9\u3067\u306e\u6b63\u89e3\r\n\r\n\/\/ var c []chan int  \u3053\u308c\u306f\u5b9f\u884c\u6642\u306b\u30a8\u30e9\u30fc\u3068\u306a\u308b\r\n\r\nfunc main() {\r\n\tvar wg sync.WaitGroup\r\n\tdefer wg.Wait()\r\n\r\n\t\/\/c := make(chan int)\r\n\r\n\t\/\/ \u30d0\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u751f\u6210 3\u53f0\r\n\tfor i := 0; i < 3; i++ {\r\n\t\twg.Add(1)\r\n\r\n\t\tc[i] = make(chan int)\r\n\t\tgo bus_func(i, &wg, c[i])\r\n\t}\r\n\r\n\t\/\/ \u30d0\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u308b\r\n\r\n\tc[0] <- 50\r\n\tc[1] <- 30\r\n\tc[2] <- 10\r\n\r\n\tc[0] <- 50\r\n\tc[1] <- 30\r\n\tc[2] <- 10\r\n\r\n\tc[0] <- 50\r\n\tc[1] <- 30\r\n\tc[2] <- 10\r\n\r\n}<\/code><\/pre>\n

 <\/p>\n","protected":false},"excerpt":{"rendered":"

\u3053\u308c\u307e\u3067C\/C++\u8a00\u8a9e\u3067\u4f5c\u3063\u3066\u304d\u305f\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u3001golang\u3067\u4f5c\u308a\u304b\u3048\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002 \u3053\u308c\u307e\u3067\u3082\u30e1\u30a4\u30f3\u95a2\u6570\u306b\u7e1b\u3089\u308c\u305a\u306b\u3001\u30b9\u30ec\u30c3\u30c9\u3092\u81ea\u7531\u306b\u52d5\u304d\u56de\u3059\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u306f\u4f5c\u3063\u3066\u304d\u305f\u306e\u3067\u3059\u304c\u3001C\/C […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}"},"categories":[52,1,4],"tags":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/posts\/4484"}],"collection":[{"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/comments?post=4484"}],"version-history":[{"count":3,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/posts\/4484\/revisions"}],"predecessor-version":[{"id":4487,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/posts\/4484\/revisions\/4487"}],"wp:attachment":[{"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/media?parent=4484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/categories?post=4484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.kobore.net\/wp-json\/wp\/v2\/tags?post=4484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}