Javaのスレッド

同期とは

複数のプログラムが並列に実行されているとき、同じ記憶領域に同時にアクセスしてしまって内容の整合性が失われるのを防ぐ制御

スレッドとは

プロセス内の実行手順のこと

スレッドを作成する2つの方法

・Threadクラスを拡張する
・Runnableインターフェイスを実装する

スレッドの状態

・新規作成
・使用可能
・実行中
・待機中
・破棄

スレッドのライフサイクル

新規作成→使用可能

使用可能→実行中

実行中→待機中
実行中→使用可能
実行中→破棄

待機中→使用可能

synchronizedメソッドまたはsynchronizedブロック内で例外が発生した場合

オブジェクトのロックが解放される。これは、ほかのスレッドがロックの解放を永久に待ち続けることがないようにするため

デッドロックとは

複数のスレッドが互いにロックの解放を永久に待ち続けてしまうエラー状態

スレッド間で通信を行う方法

wait()、notify()、notifyAll()メソッドを使用