Java中的后台线程和join方法
2024-08-29 07:26:41
/*守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。
需求: 模拟QQ下载更新包。
一个线程默认都不是守护线程。
*/
public class Demo extends Thread {
public Demo(String name){
super(name);
}
@Override
public void run() {
for(int i = 1 ; i<=100 ; i++){
System.out.println("更新包目前下载"+i+"%");
if(i==100){
System.out.println("更新包下载完毕,准备安装..");
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Demo d = new Demo("后台线程");
d.setDaemon(true); //setDaemon() 设置线程是否为守护线程,true为守护线程, false为非守护线程。
// System.out.println("是守护线程吗?"+ d.isDaemon()); //判断线程是否为守护线程。
d.start();
for(int i = 1 ; i<=100 ; i++){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
线程中的join方法:
/*
join方法。 加入
*/ //老妈
class Mon extends Thread{
public void run() {
System.out.println("妈妈洗菜");
System.out.println("妈妈切菜");
System.out.println("妈妈准备炒菜,发现没有酱油了..");
//叫儿子去打酱油
Son s= new Son();
s.start();
try {
s.join(); //加入。 一个线程如果执行join语句,那么就有新的线程加入,执行该语句的线程必须要让步给新加入的线程先完成任务,然后才能继续执行。
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("妈妈继续炒菜");
System.out.println("全家一起吃饭..");
}
} class Son extends Thread{
@Override
public void run() {
System.out.println("儿子下楼..");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("儿子一直往前走");
System.out.println("儿子打完酱油了");
System.out.println("上楼,把酱油给老妈");
}
} public class Demo {
public static void main(String[] args) {
Mon m = new Mon();
m.start();
}
}
最新文章
- EF数据库初始化策略及种子数据的添加
- svn出现权限不足时的解决方法
- Java测试工具
- 数位DP之小小结
- js跨浏览器事件对象、事件处理程序
- python入门学习笔记(三)
- Git (gnome-ssh-askpass:3871): Gtk-WARNING **: cannot open display:
- char码值对应列表大全
- 2018-2019-2 20165336《网络对抗技术》Exp0 Kali安装 Week1
- SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问
- Java框架之Struts2(四)
- max,min,Zip函数(十一)
- Python文件和目录模块介绍:glob、shutil、ConfigParser
- Spring 监听
- 一本通1640C Looooops
- android view的多种移动方式(测试集合)
- win7 开机自启动控制
- shell 命令参数
- STL中的Vector相关用法
- /dev/rdsk 与 /dev/dsk区别
热门文章
- appium自动化测试框架——自动化启动多台设备思路梳理
- 剑指Offer的学习笔记(C#篇)-- 数组中重复的数字
- NetCore + Mysql + EF:No coercion operator is defined between types &#39;System.Int16&#39; and &#39;System.Boolean&#39;,
- JavaScript进阶 - 第3章 一起组团(数组)
- 题解 poj3585 Accumulation Degree (树形dp)(二次扫描和换根法)
- Python 工具包 werkzeug 初探
- list remove元素
- java-可逆加密算法
- idea 卡顿问题
- 转 AIX filesystemcache引发的Oracle事故