2017-02-27 10 views
0

こんにちは私はJAVAでifステートメントを作っていますが、スレッドが実行されていないときにショートキーを押してスレッドが実行を開始し、スレッドが実行されている場合は同じショートキーを押してスレッドが実行を停止します。同じshortKeyでスレッドを開始および停止する方法は?

マイコード:

if(!th.isAlive()){ 
    th.start(); 
}else{ 
    th.stop(); 
    } 

しかし、このコードは動作しません。私を助けてください。

p.s - このスレッドは停止()を呼び出すときに死ぬので、再起動することはできませんのでshortkey

+0

スレッドを停止してInterruptedExceptionをキャッチするには、interrupt()メソッドを呼び出す必要があります。 –

+0

interrupt()を使用する必要があります: http://stackoverflow.com/questions/3590000/what-does-java-lang-thread-interrupt-do –

+1

stop()メソッドが無効です。メソッドstart()は一度だけ呼び出すことができます。あなたのコードやjava.util.concurrentのより便利なプリミティブを停止/再実行するためにいくつかの論理フラグ&wait/notifyを使用してください – rvit34

答えて

0

でクリックが前述したように、文が発生した場合、あなたはthread.interrupt()を使用する必要があることがあります。 (How can a dead thread be restarted?を参照してください)

あなたが説明している動作を実現するには、CountDownLatchに興味があります。

関連する問題