在上篇文章<多线程的使用——Thread类和Runnable接口>中提到中断线程的问题.在JAVA中,曾经使用stop方法来停止线程,然而,该方法具有固有的不安全性,因而已经被抛弃(Deprecated).那么应该怎么结束一个进程呢?官方文档中对此有详细说明:<为何不赞成使用 Thread.stop.Thread.suspend 和 Thread.resume?>.在此引用stop方法的说明: 1. Why is Thread.stop deprecated? Because it
package charpter10; public class Processor implements Runnable { @Override public void run() { for (int i = 0; i <= 100; i++) { System.out.println("中断标记位:" + Thread.currentThread().isInterrupted()); System.out.println("状态:" + Thread
线程启动完毕后,在运行可能需要终止,Java提供的终止方法只有一个stop,但是不建议使用此方法,因为它有以下三个问题: (1)stop方法是过时的 从Java编码规则来说,已经过时的方式不建议采用. (2)stop方法会导致代码逻辑不完整 stop方法是一种"恶意" 的中断,一旦执行stop方法,即终止当前正在运行的线程,不管线程逻辑是否完整,这是非常危险的. 看如下代码: public class Client { public static void main(String[]
package com.cky.thread; /** * Created by edison on 2017/12/3. */ public class MyThread12 extends Thread{ @Override public void run() { super.run(); for (int i = 0; i < 50000; i++) { if (Thread.interrupted()) { System.out.println("子线程已经停止了,我要退出&quo
本文将介绍jdk提供的api中停止线程的用法. 停止一个线程意味着在一个线程执行完任务之前放弃当前的操作,停止一个线程可以使用Thread.stop()方法,但是做好不要使用它,它是后继jdk版本中废弃的或者将不能使用的方法,大多数停止一个线程的操作使用Thread.interrupt()方法. 1.本实例将调用interrupt()方法来停止线程,创建MyThread.java,代码如下: package com.lit.thread006; public class MyThread ext
在沉睡中停止线程会抛出异常 public class SleepInterruptDemo extends Thread { public void run() { super.run(); try { for (int i = 0; i < 500000; i++) { System.out.println("i=" + (i + 1)); } System.out.println("run begin"); Thread.sleep(2000); Syst
调用interrupt方法仅仅是在当前线程中打了一个停止的标记,并不是真正停止线程. this.interrupted() :测试当前线程是否已经中断,执行后具有将状态标志清除为false的功能 isInterrupted() : 测试线程Thread对象是否已经是中断状态,但不清除状态标志. public class InterruptDemo extends Thread{ public void run(){ super.run(); try{ for(int i =0;i< 5000