Java 中的线程控制:启动、停止和重新启动
启动线程就像创建 Thread 类的实例一样简单,调用start()方法。然后,线程将执行其 run() 方法中的代码。
但是,停止线程并不那么简单。一旦线程启动,就没有直接的方法可以停止它。相反,您可以使用技术来通知线程它应该停止执行。
一种常见的方法是使用布尔标志来指示线程是否应该继续运行。在线程的 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中文网其他相关文章!