停止线程,表示停止之后线程就被销毁了,无法再恢复。
停止线程有一个 stop 方法,但是这个方法已经过时,我们不用它。
一般手动停止线程。
或者线程执行完 run 方法后会正常退出。
# 停止线程
停止线程一般用 interrupted 和 interrupt:
public class StopTest { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { int i = 0;
while (!interrupted()) { System.out.println("我是线程" + Thread.currentThread().getName() + ", 我在while循环~ 第"+ (++i) +"次"); } }, "111"); thread.start(); Thread.sleep(100); thread.interrupt(); } }
|
# 暂停线程
概念:表示线程暂时挂起,不被运行,等到恢复之后,可以从暂停点开始继续运行。
暂停线程使用:
suspend()
:暂停线程
resume()
:恢复线程
public class SrTest { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(()->{ int num = 1; while (true) { System.out.println(Thread.currentThread().getName()+" num::"+(num++)); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }, "ttt"); thread.start(); Thread.sleep(5000); System.out.println("准备暂停子线程..."); thread.suspend(); Thread.sleep(5000); System.out.println("准备恢复子线程..."); thread.resume(); } }
|
不过上面这两个方法都是已过时的,可以使用 wait 和 notify 来实现暂停线程和恢复线程的效果。
后面再写。