next up previous
Next: 16.5 自発的な再スケジューリング sleep,yieldメソッド Up: 16 スレッドのスケジューリング Previous: 16.3 スレッドのライフサイクル

16.4 スレッドのキャンセル cancellation

スレッドを生成した後,スレッドの実行をキャンセルする場面は多くある. たとえば,GUIのキャンセルボタンを押したときの処理, データベース検索のように,複数のスレッドが同時に走っていて,どれ かひとつが結果を返してきた場合に他のスレッドのキャンセル, また予測していないエラーや例外に会ったため継続することが できなくなった場合などがある. キャンセルを行う方法としては,interrupt()メソッドが 利用されます.二つのスレッドA,Bがあった場合に, Bをキャンセルする場合に,Aの中でBにinterruptメソッドを送り, Bの中では,

while (!interrupted()) {
   処理
}
のように,interrupted()メソッドで割り込みを受けるという 具合に行う.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日