teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/12/06 01:59

投稿

nobonobo
nobonobo

スコア3367

answer CHANGED
@@ -8,4 +8,31 @@
8
8
  - チャネルでメッセージが到達するのでselectで待受しやすい
9
9
  - 余計なgoroutineを作らずに済む
10
10
 
11
- というわけで、やりたい事に適したブロードキャスト方法はPubSubだったということになります。
11
+ というわけで、やりたい事に適したブロードキャスト方法はPubSubだったということになります。
12
+
13
+ ### 追記
14
+
15
+ コメントに頂いたコードはチャネルの容量を1に設定することでデッドロックしなくなります。
16
+
17
+ ```go
18
+ package main
19
+
20
+ import "fmt"
21
+
22
+ func channel_test() chan int {
23
+ ch := make(chan int, 1)
24
+ ch <- 1
25
+ return ch
26
+ }
27
+
28
+ func main() {
29
+ v := channel_test()
30
+ fmt.Println(v)
31
+ }
32
+ ```
33
+
34
+ また、PubSub実装は
35
+
36
+ [https://mattn.kaoriya.net/software/lang/go/20131225102008.htm](https://mattn.kaoriya.net/software/lang/go/20131225102008.htm)
37
+
38
+ こちらなどを参考にされてみてはどうでしょうか?