interrupt()方法仅仅是通知线程,线程有机会执行一些后续操作,同时也可以无视这个通知。被interrupt的线程,有两种方式接收通知:一种是异常, 另一种是主动检测。 通过异常接收通知 当线程A处于WAITING、 TIMED_WAITING状态时, 如果其他线程调用线程A的interrupt()方法,则会使线程A返回到RUNNABLE状态,同时线程A的代码会触发...
final Thread thread1= new Thread(new Runnable() { public void run() { while (true) { System.out.println(Thread.currentThread().getName()+"is running"); if(Thread.currentThread().isInterrupted()) { System.out.println(Thread.currentThread().getName()+"interrupt,即将退出"); //throw new ...
at com.book.sleep_interrupt.MyThread1.run(MyThread1.java:19) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 四、停止线程方法3:stop()暴力停止 线程调用stop()方法会被暴力停止,方法已弃用。该方法会有不好的后果: 强制让线程停止有可能使一些请理性的工作得不到完成。 对锁定的对象进行...
通常情况下,终止线程有两种方式:stop与interrupt 1) stop:暴力的停止线程(不管线程执行到哪段代码,立刻干掉),这个方法因为过于暴力会导致安全问题,因此JDK不推荐使用。 2) interrupt:优雅停止,调用该方法会通知线程可以进行停止操作了,此时线程只是变成可停止状态(thread.isInterrupted的值为true),实际上并没有停止 请...
因此,在这里强烈建议大家不要再用stop方法去停止线程了! 如何优雅的停止一个线程 我们知道线程只有从 runnable 状态(可运行/运行状态) 才能进入terminated 状态(终止状态),如果线程处于 blocked、waiting、timed_waiting 状态(休眠状态),就需要通过 Thread 类的 interrupt() 方法,让线程从休眠状态进入 runnable 状态,从...
Java 中原来在 Thread 中提供了 stop() 方法来终止线程,但这个方法是不安全的,所以一般不建议使用。 本文向大家介绍使用 interrupt 方法中断线程。 使用interrupt 方法来中断线程可分为两种情况: (1)线程处于阻塞状态,如使用了sleep方法。 (2)使用while(!isInterrupted()){……}来判断线程是否被中断。
Thread thread = new Thread(new RightWayStopThreadWithoutSleep()); thread.start(); // 等待1s Thread.sleep(1000); // 通知停止线程 thread.interrupt(); } } 复制代码 使用thread.interrupt()通知线程停止 但是线程需要配合: 在while中使用Thread.currentThread().isInterrupted()检测线程当前的状态 ...
针对上述情况,我们不能直接将线程给终止掉,但有时又必须将让线程停止运行某些代码,那么此时我们必须有一种机制让线程知道它该停止了。Java 为我们提供了一个比较优雅的做法,即可以通过Thread#interrupt()给线程该线程一个标志位,让该线程自己决定该怎么办。
stop 1??false stop 2??false 类Run.java中虽然是在thread对象上调用以下代码:thread.interrupt(), 后面又使用 System.out.println("stop 1??" + thread.interrupted()); System.out.println("stop 2??" + thread.interrupted()); 来判断thread对象所代表的线程是否停止,但从控制台打印的结果来看,线程并未...
因此,在这里强烈建议大家不要再用stop方法去停止线程了! 如何优雅的停止一个线程 我们知道线程只有从 runnable 状态(可运行/运行状态) 才能进入terminated 状态(终止状态),如果线程处于 blocked、waiting、timed_waiting 状态(休眠状态),就需要通过 Thread 类的 interrupt() 方法,让线程从休眠状态进入 runnable 状态,从...