2

重複の可能性:
終了したスレッドの復活

 Thread threadWait = new Thread()
    {
        @Override
        public void run() {
            try {
                sleep(10000);
                sync = false;
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }               
    };

私はここでこのスレッドを呼び出します:

            threadWait.start();
        while(sync){
        //do something
        }

threadWaitが終了すると、状態はTERMINATEDになります。スレッドをもう一度開始するにはどうすればよいですか?何か案が?THX TO ALL!

解決:

Runnable runWait = new Runnable(){
    public void run(){
        try {
            Thread.sleep(10000);
            sync = false;
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
};

と..

Thread first = new Thread(runWait);
            first.start();
4

2 に答える 2

1

Thread同じオブジェクトを複数回起動することはできません。新しいものを作成Threadして開始するだけです。

于 2012-10-08T16:51:57.620 に答える
1

スレッドをもう一度開始するにはどうすればよいですか?

できません。どのスレッドも1回だけ実行できます。もちろん、必要に応じThreadて同じもので新しいスレッドを作成し、Runnableその2番目のスレッドを開始することもできます...

Runnable runnable = new Runnable() {
    // Code as before
};
Thread first = new Thread(runnable);
first.start();
... Maybe the first thread dies...
Thread second = new Thread(runnable);
second.start();
于 2012-10-08T16:52:15.257 に答える