【Java】Java ~ スレッド / Thread ~

スレッドの休止・中断

1)sleep()

* 指定した時間だけ現在実行中のスレッドを休止させる

2)yield()

* 現在処理中のスレッドを一時休止し、
 他のスレッドに実行の機会を与える

3)interrupt()

* 休止中のスレッドに割り込みを入れるメソッド

処理を一時停止するには

* Thread.sleep() を使う
* 非スレッド環境でも使える

サンプル

Thread.sleep(60 * 1000L); // 60sec処理を止める

参考文献

http://d.hatena.ne.jp/konchi/20090911/1252646115

InterruptedException / 割り込み例外について

Interrupt = 中断する

 * 自分の作成しているシステムの仕様・設計にあった処理を行う必要がある
  => 「何もしない」or「無視して処理を進める」など
 * 意図せずに、通常の例外と同じ処理にしないように注意

参考文献

http://www1.bbiq.jp/takeharu/java108.html
http://d.hatena.ne.jp/Nagise/20111130/1322628285

スレッドの同期

1)wait()

* 現在のスレッドを待機させる。

2)notify()

* wait()によって待機中であるスレッドの1つを再開。
 プログラム側から指定することはできない。

3)notifyAll()

* wait()によって待機中であるすべてのスレッドを再開。

参考文献

http://www.gamesite8.com/archives/575489.html

関連記事

デザインパターン】【非同期】Guarded Suspensionパターン
Java】例外について ~Exception~