Go言語でGO(勉強記録3(小規模))
Go言語でGOシリーズの3話です。
そろそろ作りたいものを作っていきたいなあ。
goroutine
コルーチンならぬ、ゴルーチン。
Go言語自慢の、軽量でシンプルなスレッド(っぽい)機能だそうです。
スレッドといえば並行処理。
↓のプログラムでは、2秒に1回実行するtwoSecond()を呼ぶときに「go」を頭につけています。
そうすることで、1秒に1回実行するoneSecond()の合間合間にPrintlnしてくれるようになります。
package main
import (
"fmt"
"time"
)
func oneSecond() {
for i := 1; i <= 6; i++ {
time.Sleep(1 * time.Second)
fmt.Println(i, "秒経過(毎秒)")
}
}
func twoSecond() {
for i := 1; i <= 3; i++ {
time.Sleep(2 * time.Second)
fmt.Println(i*2, "秒経過(2秒ごと)")
}
}
func main() {
fmt.Println("ここから")
go twoSecond()
oneSecond()
fmt.Println("ここまで")
}
チャンネル
goroutineと外界(別のgoroutine含む)の間でデータをやり取りするためには「チャンネル」というものを使うらしい。
…というところまでは分かったものの、「なるほどわからん」状態のため、色々例文をサンプルにあちこち組んでみることに。
つまり、丸投げということです。
ディスカッション
コメント一覧
まだ、コメントがありません