摘要:和线程停止相关的三个方法中断线程。另外对于返回的线程不起作用。判断线程中断状态,但不会清除线程中断状态。线程停止的几种情况使用退出标记,方法执行完毕,线程正常退出。在线程内部使用结束线程。
和线程停止相关的三个方法
/* 中断线程。如果线程被wait(),join(),sleep()等方法阻塞,调用interrupt()会清除线程中断状态,并收到InterruptedException异常。另外interrupt();对于isAlive()返回false的线程不起作用。 */ public void interrupt(); /* 静态方法,判断线程中断状态,并且会清除线程的中断状态。所以连续多次调用该方法,第二次之后必定返回false。另外,isAlive()用于判断线程是否处于存活状态,如果isAlive()返回false,interrupted()也必定返回false。 */ public static boolean interrupted(); /* 判断线程中断状态,但不会清除线程中断状态。另外,isAlive()用于判断线程是否处于存活状态,如果isAlive()返回false,interrupted()也必定返回false。 */ public boolean isInterrupted();
线程停止的几种情况:
1: 使用退出标记,run方法执行完毕,线程正常退出。
2: 使用stop()方法,已过时的方法,不推荐。
3: 使用interrupt()方法中断线程。
多带带调用这个方法并不能中断线程,只是打了一个中断状态的标记。或者说是将线程状态更改为中断状态。
中断线程可以通过以下几种方法。
在线程内部抛出异常。
在线程内部使用return结束线程。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77655.html
摘要:最近听很多面试的小伙伴说,网上往往是一篇一篇的多线程的文章,除了书籍没有什么学习多线程的一系列文章。将此线程标记为线程或用户线程。 最近听很多面试的小伙伴说,网上往往是一篇一篇的Java多线程的文章,除了书籍没有什么学习多线程的一系列文章。但是仅仅凭借一两篇文章很难对多线程有系统的学习,而且面试的时候多线程这方面的知识往往也是考察的重点,所以考虑之下决定写一系列关于Java多线程的文章...
摘要:和方法用来设置线程是否成为守护线程和判断线程是否是守护线程。守护线程依赖于创建它的线程,随它的消亡而消亡。使用提供的方法,提醒线程终止,但是否真正终止由线程自己决定。参考实战高并发程序设计多线程干货系列一多线程基础 一、如何创建多线程 1、继承Thread类 public class MyThread extends Thread { @Override public ...
摘要:主线程名我们启动的一个程序可以理解为一个进程一个进程中包含一个主线程线程可以理解为一个子任务中可以通过下面代码来获取默认的主线程名运行结果为这是线程的名字并不是方法通过此线程来执行方法而已两种方式创建线程继承类实现接口实现接口并且多线程运行 Java 主线程名 我们启动的一个程序可以理解为一个进程, 一个进程中包含一个主线程, 线程可以理解为一个子任务. Java 中可以通过下面代码来...
摘要:方法将冻结状态的线程强制运行,并抛出异常。注意只有在运行状态的线程才能读到标识位,最终停止线程。当正在运行的线程都是守护线程时,虚拟机退出。 stop()等方法过时以后,停止线程的唯一方法就是结束run()方法:开启多线程运行通常都是循环结构,只要使用标识位控制住循环,就可以让run()方法结束,即线程结束。 特殊情况:当线程处于了冻结状态就不会读取到标记,那么线程就不会停止。 int...
摘要:线程是在进程中独立运行的子任务。线程中断状态由该方法清除。测试线程对象是否已经是中断状态,但不清除状态标志。高优先级的线程总数大部分先执行完,但不代表高优先级的线程全部先执行完。当进程中不存在非守护线程了,则守护线程自动销毁。 进程是受操作系统管理的基本运行单元。 线程是在进程中独立运行的子任务。使用多任务操作系统Windows后,可以最大限度地利用CPU的空闲时间来处理其他的任务。...
阅读 3386·2023-04-25 18:14
阅读 1491·2021-11-24 09:38
阅读 3198·2021-09-22 14:59
阅读 3022·2021-08-09 13:43
阅读 2523·2019-08-30 15:54
阅读 531·2019-08-30 13:06
阅读 1506·2019-08-30 12:52
阅读 2680·2019-08-30 11:13