Rust でのマルチスレッドの勉強のためにぷよぷよっぽいゲームを書いているので、学んだことを書いておく。 Rust ではデータ競合は起こせない Rust はデータ競合 ( data races ) がないことを保証している。( data races であって race conditions ではない。 Races - 参照 所有権のシステムによって同一のメモリを複数箇所から同時に書き換えることができないようになっており、これをコンパイル時にチェックすることで安全性を保証している。 これに違反している場合はコンパイルが通らない。 これはマルチスレッドでも適用されるので、安心してコードを書くことができるが、その分最初はコンパイルが通らなくて悩むことも多かった。 スレッドを使ってみる 単純な例 スレッドは標準ライブラリの thread::spawn を使う。 以下はスレッドを生成して1秒後に h