* Docker
* X.v6
を読むことになったので、今日はgo言語入門でした。Dockerはgoで書かれてるらしいです。
といっても、go は、ほとんど、セミコロンのないCなので、見るのは go routine と channel だけですね。
for i:=0;i<10;i++ {
go func() {
fmt.Println(i)
} ()
}
とかするんですが、10 がたくさん表示される。あれ?
for i:=0;i<10;i++ {
j := i
go func() {
fmt.Println(j)
} ()
}
かと思ったが、やっぱり 10 。正解は、
for i:=0;i<10;i++ {
go func(i int) {
fmt.Println(i)
} (i)
}
らしいです。for 文の方が先に終わっちゃうわけね。
昔、一通り追ったが、忘れてるな。channel は便利そうだが、大変そう。ちなみに、Docker でどのように使われているのかは謎です。
Docker は来週で片付けたい。
X.v6は、たぶん、6月初旬ぐらいに、まとめて読みます。 参考にしたのはこっちです。https://talks.golang.org/2012/concurrency.slide#12
No comments:
Post a Comment