Closed2
Go読書会メモ
5 関数
- 関数はファーストクラス、変数に代入したり、関数へ渡したり関数から返したりできる
- スタックは1kb
- 関数のBodyがGoの実装にない場合→Assemblyで実装されている
#memo
# go doc -srcのオプションでソースコードを確認できる(便利)
go doc -src io.Reader
ゴルーチンとチャンネル
happens before
こちらの日本語記事の方が個人的にフォローしやすい。
どういう操作をしたら保証される。
Java synchronize
volatile宣言
言語によってメモリモデルは異なる。
naturals := make(chan int)
squares := make(chan int)//バッファなしチャンネル
cap(chan)
チャンネルのバッファあり、なしにするかはcase by caseとのこと。
Goルーチンは一斉に走り始めない。
→テストで処理計測する際には、一斉に走り始めるようなコードを書く必要があるとのこと。
プログラムについてはmattnさんのブログにコード例が記載されているように
sync.Cond、broadcastを使って実現できる。
CPUヘビーな処理については
コアが2つのマシンでGoルーチンもCPUコアに合わせて実行するようにプログラムを記述する。
deeeetさんのブログが詳しい。
このスクラップは2022/08/03にクローズされました