广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州​分享Java线程中断实例_北大青鸟IT学校

作者:邓华发布时间:2021-05-11分类:Java技术浏览:812


导读:​Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么下面惠州北大青鸟老师给大家​分享Java线程中断的实例,希望对大家的学习有帮助。

Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么下面惠州北大青鸟老师给大家分享Java线程中断的实例,希望对大家的学习有帮助。

实例一

你可以中断一个被阻塞的线程。

如果在这三种方法上阻塞的线程被中断,则抛出一个InterruptedException,并清除线程的中断状态。

以下代码启动一个休眠一秒的线程,并打印一条消息,直到它被中断。

public class Main {

   public static void main(String[] args) throws InterruptedException{

     Thread t = new Thread(Main::run);

     t.start();

     Thread.sleep(5000);

     t.interrupt();

   }


   public static void run() {

     int counter = 1;

     while (true) {

       try {

         Thread.sleep(1000);

         System.out.println("Counter:" + counter++);

       } catch (InterruptedException e) {

         System.out.println("I got  interrupted!");

       }

     }

   }

 } 

上面的代码生成以下结果。

Counter:1

Counter:2

Counter:3

Counter:4

Counter:5

I got interrupted!

Counter:6

Counter:7

Counter:8

Counter:9

实例二

下面的代码如何一个线程将中断另一个线程。

public class Main {

   public static void main(String[] args) {

     Thread t = new Thread(Main::run);

     t.start();

     try {

       Thread.currentThread().sleep(1000);

     } catch (InterruptedException e) {

       e.printStackTrace();

     }

     t.interrupt();

   }


   public static void run() {

     int counter = 0;

     while (!Thread.interrupted()) {

       counter++;

     }

     System.out.println("Counter:" + counter);

   }

 } 

上面的代码生成以下结果。

Counter:1138065997

实例四

Thread类有一个非静态的isInterrupted()方法,可以用来测试一个线程是否被中断。

public class Main {

   public static void main(String[] args) {

     System.out.println("#1:" + Thread.interrupted());


     Thread mainThread = Thread.currentThread();

     mainThread.interrupt();


     System.out.println("#2:" + mainThread.isInterrupted());


     System.out.println("#3:" + mainThread.isInterrupted());


     System.out.println("#4:" + Thread.interrupted());


     System.out.println("#5:" + mainThread.isInterrupted());

   }

 } 

上面的代码生成以下结果。

#1:false

#2:true

#3:true

#4:true

#5:false

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

Java12.jpg

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表