线程interrupt方法

xiaoxiao2021-02-28  125

interrupt不可以中断一个正在运行的线程,但是她可以中断阻塞的线程

public class Interrupted { public static void main(String[] args) { //sleepthread 不停的常设睡眠 Thread sleepThread = new Thread(new SleepRunner(),"sleepthread"); sleepThread.setDaemon(true); //busythread不停的运行 Thread busyThread = new Thread(new BusyRunner(),"busyThread"); busyThread.setDaemon(true); sleepThread.start(); busyThread.start(); //休眠5秒 让sleepThread和busythread充分运行 try { TimeUnit.SECONDS.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } sleepThread.interrupt(); busyThread.interrupt(); System.out.println("sleepThread interrupted is " + sleepThread.isInterrupted()); System.out.println("busyThread interrupted is " + busyThread.isInterrupted()); while(true){ try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } static class SleepRunner implements Runnable{ @Override public void run() { while(true){ try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } static class BusyRunner implements Runnable{ @Override public void run() { while(true){ System.out.println("qqqqqqqqqqqq"); } } } }
转载请注明原文地址: https://www.6miu.com/read-28222.html

最新回复(0)