The Go gopherwas designed by Renée French.
The gopher stickers was made by Takuya Ueda.
Licensed under the Creative Commons 3.0 Attributions license.
GAE/Goとsyncパッケージ
2018年3月2日(金)
@酔いどれGCPUG
Goの並行処理
■ ゴールーチン
■ 軽量なスレッドに近いもの
■goキーワードをつけて関数呼び出し
■ チャネル
■ ゴールーチン間のデータのやり取り
■ 安全にデータをやり取りできる
5
チャネル
ゴールーチン
A
ゴールーチン
B
データ
データ
// 関数fを別のゴールーチンで呼び出す
go f()
6.
GAE/Goでの並行処理の使い所
■ 並列度は1
● GAE/Go上ではゴールーチンは並列には実行されない
●ずっと1とは限らないので適切にロックは取ろう
■ ゴールーチンのスケジューラの挙動を把握する
● 特定の処理が走ると別のゴールーチンに処理が切り替わる
○ I/Oやシステムコール、チャネルのブロックなど
● Datastoreへ複数のリクエストを投げる場合には有効
○ 通信が発生しているため
Cloud
Datastore
App
Engine
Get A
Get B
Get C