摘要:方法将冻结状态的线程强制运行,并抛出异常。注意只有在运行状态的线程才能读到标识位,最终停止线程。当正在运行的线程都是守护线程时,虚拟机退出。
stop()等方法过时以后,停止线程的唯一方法就是结束run()方法:
开启多线程运行通常都是循环结构,只要使用标识位控制住循环,就可以让run()方法结束,即线程结束。
特殊情况:当线程处于了冻结状态就不会读取到标记,那么线程就不会停止。
interrupt()方法
将冻结状态的线程强制运行,并抛出异常InterruptedException。 注意只有在运行状态的线程才能读到标识位,最终停止线程。当没有指定的方式让线程恢复到运行状态时,就需要使用该方法对冻结进行消除,并操作标识位让线程结束。
下面的方法可以配合interrupt()方法结束运行:
class StopThread implements Runnable { public synchronized void run() { while (!Thread.currentThread.isInterrupted())//正常情况执行代码,一旦线程调用interrupt()方法,返回值会变true,跳出循环 { dosomething(); } } }
补充
守护线程setDaemon()
将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。
该方法必须在启动线程前调用。
t1.setDaemon(); //t1为线程对象
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/66268.html
摘要:和方法用来设置线程是否成为守护线程和判断线程是否是守护线程。守护线程依赖于创建它的线程,随它的消亡而消亡。使用提供的方法,提醒线程终止,但是否真正终止由线程自己决定。参考实战高并发程序设计多线程干货系列一多线程基础 一、如何创建多线程 1、继承Thread类 public class MyThread extends Thread { @Override public ...
摘要:常用于临时加入线程。重载形式等待被的线程执行完成。当正在运行的线程都是守护线程时,虚拟机退出。为线程对象设置优先级类定义了三个静态常量停止线程释放执行线程的执行权,让重新调度一次,但仍有可能回到该线程。 join()线程当A线程执行到了B线程的join()方法时,A线程就会等待B线程执行完,A线程才会执行。join()常用于临时加入线程。重载形式:join():等待被join的线程执行...
摘要:最近听很多面试的小伙伴说,网上往往是一篇一篇的多线程的文章,除了书籍没有什么学习多线程的一系列文章。将此线程标记为线程或用户线程。 最近听很多面试的小伙伴说,网上往往是一篇一篇的Java多线程的文章,除了书籍没有什么学习多线程的一系列文章。但是仅仅凭借一两篇文章很难对多线程有系统的学习,而且面试的时候多线程这方面的知识往往也是考察的重点,所以考虑之下决定写一系列关于Java多线程的文章...
摘要:本人邮箱欢迎转载转载请注明网址代码已经全部托管有需要的同学自行下载类学习线程的开发者首先遇到的第一个类就是通过使用类我们就可以启动停止中断一个线程在同一个时间片里可能会有多个线程在执行每个线程都拥有它自己的方法调用堆栈参数和变量每个至少会有 本人邮箱: 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kcogithub: https://github...
摘要:实现接口直接被继承的子类是程序中的执行线程,虚拟机允许应用程序同时运行多个执行线程。如果要恢复目标线程的线程试图在调用之前锁定此监视器,则会导致死锁。线程可以拥有的最大优先级。 Class Thread java.lang.Object java.lang.Thread 实现接口:Runnable直接被继承的子类:ForkJoinWorkerThread public cl...
阅读 1283·2021-09-27 13:56
阅读 2291·2019-08-26 10:35
阅读 3469·2019-08-23 15:53
阅读 1813·2019-08-23 14:42
阅读 1202·2019-08-23 14:33
阅读 3519·2019-08-23 12:36
阅读 1914·2019-08-22 18:46
阅读 948·2019-08-22 14:06