时间:2021-05-20
本文实例讲述了Java中断一个线程操作。分享给大家供大家参考,具体如下:
一 点睛
中断一个线程,意味着该线程在完成任务之前,停止它正在进行的一切当前的操作。
有三个比较常用的函数:
interrupt():一个正在运行的A线程,可以调用B线程对应的interrupt方法来中断线程B。这个方法的核心功能是,将线程B的中断标识位属性设置为true。
isInterrupted():通过该方法判断某个线程是否处于中断状态。
interrupted():这是一个静态方法,用来获取当前线程的中断状态,并清除中断状态。获取的是清除之前的值,也就是说连续两次调用此方法,第二次一定会返回false。
二 代码
public class SleepInterrupt implements Runnable{ public void run() { try { System.out.println( "在run()方法中 ——这个线程休眠10秒" ); Thread.sleep( 10000 ); System.out.println( "在run()方法中 —— 继续运行" ); } catch( InterruptedException x ) { System.out.println( "在run()方法中 - 中断线程" ); return; } System.out.println( "在run()方法中 - 休眠之后继续完成" ); System.out.println( "在run()方法中 - 正常退出" ); } public static void main( String[] args ) { SleepInterrupt si = new SleepInterrupt(); Thread newThd = new Thread( si ); newThd.start(); // 在此休眠是为确保线程能运行一会 try { System.out.println( "在main()方法中——休眠2秒!" ); Thread.sleep( 2000 ); } catch( InterruptedException e ) { e.printStackTrace(); } System.out.println( "在main()方法中——中断newThd 线程" ); newThd .interrupt(); System.out.println( "在main()方法中 ——退出" ); }}三 运行
在main()方法中——休眠2秒!
在run()方法中 ——这个线程休眠10秒
在main()方法中——中断newThd 线程
在run()方法中 - 中断线程
在main()方法中 ——退出
四 说明
interrupt()方法并不会使正在执行的线程停止执行,它只对wait、join、sleep等方法或由于I/O操作等原因受阻的线程产生影响,使其退出暂停执行的状态。
它对正在运行的线程不起作用。
更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用interrupt()中断线程当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个
Java如何实现线程中断?通过调用Thread类的实例方法interrupt。如下:Threadthread=newThread(){@Overridepubl
java中的并发工具类一:等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。packagecom.
一个用break中断循环的Javascript的源程序代码如下:一个用break中断循环的Javascript代码示例functionBreakTest(bre
Java中停止线程的原则是什么?在Java中,最好的停止线程的方式是使用中断interrupt,但是这仅仅是会通知到被终止的线程"你该停止运行了",被终