标签:exce 修改 name tar head span 协作式 void mamicode
线程并不是抢占式的,线程是协作式的。
线程的中断状态默认为( isInterrupted=false 或 interrupted=false ),也就是默认不中断线程
中断线程(isInterrupted=true)
就比如皇上(线程)每晚挑选一个妃子侍寝,到了时间,太监会告诉皇上(线程),时间到了(声明线程中断),皇上(线程)知道了,但是动作停不停还是皇上(线程)说了算,可以不理会,也可以收手。
判断是否中断线程,如果(isInterrupted=true)则可以控制皇上(线程)收手(停止);皇上(线程)收手(停止)后,线程还是中断状态,也就是(isInterrupted=true);
判断是否中断线程,如果(interrupted=true)则可以控制皇上(线程)收手(停止);皇上(线程)收手(停止)后,线程会清楚中断状态,也就是(isInterrupted=false);
public class TheadInterrupt { //线程继承Thread类 private static class UserThread extends Thread{ public UserThread(String name){ super(name); } @Override public void run() { String threadName = Thread.currentThread().getName(); System.out.println(threadName+"Thread=start=interrupt:"+isInterrupted()); //测试线程中断 while (!isInterrupted()){//打开测试isInterrupted //while (!interrupted()){//打开测试interrupted System.out.println(threadName+"Thread=while=interrupt:"+isInterrupted()); } System.out.println(threadName+"Thread=end=interrupt:"+isInterrupted()); } } public static void main(String[] args) throws InterruptedException { UserThread userThread = new UserThread("mjtabu"); userThread.start(); //线程睡眠 n 毫秒(时间可调) userThread.sleep(2); //睡眠 n 毫秒后线程中断 userThread.interrupt(); } }
Thread的Interrupt、isInterrupted、interrupted
标签:exce 修改 name tar head span 协作式 void mamicode
原文地址:https://www.cnblogs.com/mjtabu/p/12694964.html