この講義では、マルチスレッドアプリケーションにおける共有リソースとは何か、なぜレースコンディション(race condition)や「更新の消失」が起こるのか、そして
synchronized でデータをどう守るかを扱います。同期の基本手法(メソッドとブロック)を解説し、
java.util.concurrent の現代的なツール群(
Lock、
ReentrantLock、
Semaphore など)について触れ、カウンタのインクリメントの実例や典型的なミス(
i
++ の非原子的性質、誤ったロック対象、
volatile に関する誤解)を見ていきます。