Java プログラムメモ


トップ

Thread の起動と停止

Thread の起動は start() で行う。但し 1 度しか実行できない。 (run() が終了して再度 start() を実行してもスレッドの run() は呼ばれません) 同じスレッドを再度実行したい場合は new して start() を繰り返す。 また、start() から run() が呼ばれるまでの間隔は VM に依存しており、直ぐに呼ばれるわけではないので、 直ぐに run() が呼ばれる事を期待したソースを書かないように注意すること。

ソース記述例

TestThread th = new TestThread(); th.start();Thread th = new Thread(new Runnable() { public void run() { // TODO 処理 } }); th.start();

実行中の Thread を停止する場合に stop() は基本的に使用禁止。(詳しくは Java 非推奨スレッドプリミティブ を参照)
そこで、別途安全に Thread を停止できるように、 halt() を用意する。
halt() では halt_ を true にして while() を抜けさせる。処理が停止中の事も考えられるので interrupt() もやっておく。

ソース記述例

public class TestThread extends Thread { private boolean halt_; public TestThread() { halt_ = false; } public void run() { while (!halt_) { // TODO 処理 } } public void halt() { halt_ = true; interrupt(); } }


プログラムメモ アフリカ雑貨・珈琲豆・アールブリュット作品 マゴソスクール クラウドファンディング
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送