/*守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。
需求: 模拟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();
}
}

最新文章

  1. EF数据库初始化策略及种子数据的添加
  2. svn出现权限不足时的解决方法
  3. Java测试工具
  4. 数位DP之小小结
  5. js跨浏览器事件对象、事件处理程序
  6. python入门学习笔记(三)
  7. Git (gnome-ssh-askpass:3871): Gtk-WARNING **: cannot open display:
  8. char码值对应列表大全
  9. 2018-2019-2 20165336《网络对抗技术》Exp0 Kali安装 Week1
  10. SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问
  11. Java框架之Struts2(四)
  12. max,min,Zip函数(十一)
  13. Python文件和目录模块介绍:glob、shutil、ConfigParser
  14. Spring 监听
  15. 一本通1640C Looooops
  16. android view的多种移动方式(测试集合)
  17. win7 开机自启动控制
  18. shell 命令参数
  19. STL中的Vector相关用法
  20. /dev/rdsk 与 /dev/dsk区别

热门文章

  1. appium自动化测试框架——自动化启动多台设备思路梳理
  2. 剑指Offer的学习笔记(C#篇)-- 数组中重复的数字
  3. NetCore + Mysql + EF:No coercion operator is defined between types &#39;System.Int16&#39; and &#39;System.Boolean&#39;,
  4. JavaScript进阶 - 第3章 一起组团(数组)
  5. 题解 poj3585 Accumulation Degree (树形dp)(二次扫描和换根法)
  6. Python 工具包 werkzeug 初探
  7. list remove元素
  8. java-可逆加密算法
  9. idea 卡顿问题
  10. 转 AIX filesystemcache引发的Oracle事故