Next: 16.5 自発的な再スケジューリング sleep,yieldメソッド
Up: 16 スレッドのスケジューリング
Previous: 16.3 スレッドのライフサイクル
スレッドを生成した後,スレッドの実行をキャンセルする場面は多くある.
たとえば,GUIのキャンセルボタンを押したときの処理,
データベース検索のように,複数のスレッドが同時に走っていて,どれ
かひとつが結果を返してきた場合に他のスレッドのキャンセル,
また予測していないエラーや例外に会ったため継続することが
できなくなった場合などがある.
キャンセルを行う方法としては,interrupt()メソッドが
利用されます.二つのスレッドA,Bがあった場合に,
Bをキャンセルする場合に,Aの中でBにinterruptメソッドを送り,
Bの中では,
while (!interrupted()) {
処理
}
のように,interrupted()メソッドで割り込みを受けるという
具合に行う.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日