java多线程控制函数setDaemon,join,interupt
1、setDeamon
设置线程为后台运行的函数
public class SetDaemon
{public static void main(String[] args) throws InterruptedException{Thread tt=new Thread(new ThreadTest());tt.setDaemon(true); //设置程序为后台运行tt.start();Thread.sleep(3);}
}class ThreadTest implements Runnable
{public void run(){while(true){System.out.println(Thread.currentThread().getName()+" is running..."); }}
}
可见当父线程后台运行的线程自动结束。
2、join
强制CPU执行某个线程
public class SetDaemon
{public static void main(String[] args) throws InterruptedException{Thread tt=new Thread(new ThreadTest());tt.start();for(int i=0;i<10;i++){if(i==5){tt.join();}System.out.println(Thread.currentThread().getName()+i+" is running...");}}
}class ThreadTest implements Runnable
{public void run(){for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+i+" is running..."); }}
}
3、interrupt
中断线程
public class SetDaemon
{public static void main(String[] args) throws InterruptedException{Thread tt=new Thread(new ThreadTest());tt.start();Thread.sleep(2000);System.out.println("The subthread is interupted in the main thread.");tt.interrupt();tt.join();System.out.println("The main thread is over.");}
}class ThreadTest implements Runnable
{public void run(){try{System.out.println("The subthread is sleeping...");Thread.sleep(200000);}catch(Exception e){e.printStackTrace();System.out.println("The subthread is interupted.");return;}System.out.println("The subthread is over.");}
}
注意:这里的线程中断和通常所讲的硬件中断并不是同一个概念,硬件中断是...(这个就不要讲啦),这里的中断可以理解成线程的状态被设置成了中断状态(即挂起了一个小旗,告诉其它线程‘哥处于中断状态’,禁止某些操作),此时执行某些函数会触发异常,被中断的线程进入到异常处理代码段。
请仔细体会以下代码:
public class SetDaemon
{public static void main(String[] args) throws InterruptedException{Thread tt=new Thread(new ThreadTest());tt.start();Thread.sleep(5);System.out.println("The subthread is interupted in the main thread.");tt.interrupt();tt.join();System.out.println("The main thread is over.");}
}class ThreadTest implements Runnable
{public void run(){try{while(true){System.out.println(Thread.currentThread().getName()+" is running...");Thread.sleep(1);}}catch(Exception e){e.printStackTrace();System.out.println("The subthread is interupted.");return;}//System.out.println("The subthread is over.");}
}
可以使用isInterupt()查看线程是否被中断。
java多线程控制函数setDaemon,join,interupt相关推荐
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- Java多线程神器:join使用及原理
转载自 Java多线程神器:join使用及原理 join() join()是线程类 Thread的方法,官方的说明是: Waits for this thread to die. 等待这个线程结束,也 ...
- JAVA多线程基础篇-join方法的使用
1.概述 join()是Thread类中的一个方法,它的作用是将当前线程挂起,等待其他线程结束后再执行当前线程,即当前线程等待另一个调用join()方法的线程执行结束后再往下执行.通常用于在main主 ...
- java多线程wait notify join
wait notify 几个注意点: wait 与 notify/notifyAll 方法必须在同步代码块中使用,即要先对调用对象加锁. 当线程执行wait()时,会把当前的锁释放,然后让出CPU,进 ...
- 【Java】Java多线程神器:join使用及原理
1.概述 转载:http://www.javastack.cn/article/2017/java-thread-join/ join() join()是线程类Thread的方法,官方的说明是: Wa ...
- JAVA多线程:守护线程 setDaemon全方位剖析| 守护线程是线程吗 |thread.isAlive()反思(五)
前言 本文目的,通过短小精悍的实例,让你在最短时间,全面揭晓 thread.setDaemon(true)守护线程的使用,及其使用场景.一看就懂,一学就会! 概述 守护线程的作用 用来让其(这里暂称之 ...
- Java多线程:synchronized | Volatile 和Lock和ReadWriteLock多方位剖析(一)
前言 本文站在多线程初中级学习者的角度,较为全面系统的带你一起了解多线程与锁相关的知识点.带你一起解开与锁相关的各种概念.用法.利弊等.比如:synchronized.Volatile.Lock.Re ...
- java 多线程 一个博客
http://blog.csdn.net/a352193394/article/category/2563875 Java多线程之~~~线程安全容器的非阻塞容器 在并发编程中,会经常遇到使用容器.但是 ...
- JAVA多线程:sleep(0)、sleep(1)、sleep(1000)的区别(四)
前言 讨论这个问题前,需要先了解以下知识点! 1.等待/阻塞队列(blocked)中的线程不参与cpu竞争,就绪队列(runable)中的线程才会参与cpu竞争. 2.CPU竞争策略有多种,Unix使 ...
最新文章
- 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录
- html语言表格背景颜色,HTML_HTML表格标记教程(36):表头的背景色属性BGCOLOR,TH标记用于设定表格中某 - phpStudy...
- Java 中 StringBuilder 在高性能用法总结
- java gui 层次结构_javaGUI教学图形界面的层次结构.ppt
- 事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
- ASP.NET MVC与RAILS3的比较
- 将字符串转换为数组_LeetCode 树 108.将有序数组转换为二叉搜索树
- 初学web前端开发,你必要了解的基本概念与工具技术
- Linux服务器傻瓜安装(图解下)(4)
- 文本分类和意图识别调研思考
- 第三章 Docker 入门
- js-JavaScript常见的创建对象的几种方式
- 百度cpc联盟的漏洞?还是内鬼?
- 基于LabVIEW的轴承信号采集分析仪的设计
- php 中文字,完善解决截取中文汉字不乱码-PHP字符串函数(支持utf8、GBK、GB2312)
- 北京科技大学与北京工业大学计算机,请问北京工业大学和北京科技大学2010年计算机专业研究生的录取分数线是多少?谢谢!...
- 星巴克中国咖啡创新产业园正式动工,追加项目总投资至近11亿元
- 发票管理系统java_企业发票管理系统.doc
- 长期戴耳机的危害有哪些?耳机种类的选择很重要
- 健康的荷斯坦奶牛-USACO-USACO阶梯-第2章.更大的挑战