Java のスレッド制御: 開始、停止、再起動
スレッドの開始は、Thread クラスのインスタンスを作成するだけで簡単です。 start() メソッドを呼び出します。その後、スレッドは run() メソッド内のコードを実行します。
ただし、スレッドの停止はそれほど簡単ではありません。スレッドが開始されると、それを直接停止する方法はありません。代わりに、スレッドに実行を停止する必要があることを通知する手法を使用できます。
一般的なアプローチの 1 つは、ブール値フラグを使用して、スレッドが実行を継続するかどうかを示すことです。スレッドの run() メソッド内で、フラグを定期的にチェックし、false に設定されている場合は実行を終了できます。
<code class="java">// Task.java private boolean isRunning = true; @Override public void run() { while (isRunning) { // Perform tasks here } } public void stop() { isRunning = false; }</code>
スレッドの再起動
再起動スレッドとは、Thread クラスの新しいインスタンスを作成して開始することを意味します。これは、スレッドが停止すると再利用できないためです。ただし、元のスレッドによって維持されているデータや状態は新しいスレッドには転送されないことに注意することが重要です。
オプション 1: 新しいスレッドを作成する
<code class="java">Thread taskThread = new Thread(new Task()); taskThread.start(); // Later, to restart the thread... taskThread = new Thread(new Task()); taskThread.start();</code>
オプション 2: 通知と再起動
<code class="java">// Task.java private Object lock = new Object(); @Override public void run() { while (true) { synchronized (lock) { if (shouldStop) { try { lock.wait(); } catch (InterruptedException e) {} } } // Perform tasks here } } public void stop() { synchronized (lock) { shouldStop = true; lock.notify(); } } public void restart() { synchronized (lock) { shouldStop = false; lock.notify(); } }</code>
以上がJava でスレッドを制御する方法: 開始、停止、再起動?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。