間違いがあったり、他に予習したほうが良さそうなテーマがあったら教えてください。 Concurrency & Parallelism (GVL, Ractor, M:N, async) これ全部同じ項でいいのか? 並行(concurrency)と並列(parallelism) 本当に同時に実行されるのが並列(雑な説明) 並行であっても並列とは限らないが、並列であって並行でないことはない GVL (Global VM Lock) Rubyで並列に実行されるThreadの数を高々1つに制限する機構 = Rubyでは並列計算はできない ただし、I/O(ファイルの読み書きやネットワークアクセス)はこの制限を無視できる マルチスレッドプログラミングを簡単にする機構として導入されている 複数のThreadから同じ変数にアクセスしてもデータが壊れない(データレースが起きない)のはGVLのおかげ = 真に同