本章では、ゴルーチンやチャネル、syncパッケージを用いて、並行処理を行う方法について解説します。 並行プログラミングの基本 複数の処理を効率良く行うために、Goは言語自体が並行処理に必要な機能をサポートしています。特に本章で扱うゴルーチンやチャネルの機能などは、Goで並行処理プログラミングをするうえで必要不可欠な知識であり、これらを適切に使うことで、マルチコアが一般的になった近年のマシンリソースを最大限に引き出す、パフォーマンスの良いプログラムを作成できるようになります。 本節では、ゴルーチンやチャネルを用いた並行処理の考え方と、それらと合わせてよく使うsyncパッケージの使い方などについて解説します。 ゴルーチン Goには、ゴルーチン(Goroutine)という軽量スレッドのしくみがあります。ここまで行っていたmain()関数も、1つのゴルーチンの中で実行されています。go構文を用いて
golang 1.5 から、x86_64 のみですが -buildmode=c-shared というビルドオプションが足される事になりました。 これは、golang で共有ライブラリを生成する為のオプションで、例えば package main import ( "C" "fmt" ) var ( c chan string ) func init() { c = make(chan string) go func() { n := 1 for { switch { case n%15 == 0: c <- "FizzBuzz" case n%3 == 0: c <- "Fizz" case n%5 == 0: c <- "Buzz" default: c <- fmt.Sprint(n) } n++ } }() } //export fizzbuzz func fizzbuzz(n int
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く