忍者ブログ
Flex,Java,Html など、調べた事のメモ帳です。 間違ってたらゴメンなさい。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

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();
    }
}
 
この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)
ブログランキング
にほんブログ村 IT技術ブログ IT技術メモへ
 
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
人気ブログランキング
ブログランキング ブログランキング
最新TB
ブログ内検索
PR
ATOM  
ATOM 
RSS  
RSS 
Copyright ©   プログラムメモ   All Rights Reserved
Design by MMIT  Powered by NINJA TOOLS
忍者ブログ [PR]