1.守护线程(后台线程):
            我们在使用一款软件的时候,有的软件会让我们在不知道的情况下下载一些东西,那么这个就是后台线程。
            一般用于提高软件的下载量(也就是赚取一些广告费)
            
            setDaemon(boolean b)    设置是否为守护线程
            isDaemon()          返回是否为守护线程(是true否false)
注意:当程序停止运行的时候,守护线程也必须停止

下面我们来模拟使用qq,然后后台下载一款软件

public class Demo11 implements Runnable{
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("目前下载"+i+"%");
}
}
public static void main(String[] args) { Demo11 d = new Demo11();
Thread thread = new Thread(d);
thread.setDaemon(true);//设置为守护线程
thread.start();
//当i为100时qq程序停止
for (int i = 0; i < 100; i++) {
System.out.println("使用qq中"+i); }
}
}

2.join 加入:

    当在一个线程任务体(run)中使用此方法时,必须要等调用join方法的线程执行完成任务后,这个任务体才能继续执行

代码实例: 

class Thread2 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
} public class Demo12 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i==30) {
Thread2 t = new Thread2();
Thread thread = new Thread(t,"加入的线程");
thread.start();
try {
thread.join();//加入一个线程
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+":"+i);
}
} public static void main(String[] args) {
Demo12 d = new Demo12();
Thread thread = new Thread(d,"被加入的线程");
thread.start();
}
}

43. 守护线程 和 join方法的更多相关文章

  1. 多线程---其他方法 停止线程、守护线程、join方法

    第三方停止线程: 原来是stop(),因为该方法有些问题,所以被interrupt()方法取代,它的用途跟机制是 当没有指定的方式让冻结的线程恢复到运行状态时,这时需要对冻结进行清除,强制让线程恢复到 ...

  2. java多线程之守护线程以及Join方法

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 一.守护线程概述及示例 守护线程就是为其它线程提供"守护"作用,说白了就是为其它线程服务的,比如GC线程. java程序中线程分 ...

  3. 015.4守护线程和join

    内容:守护线程.join方法#####################守护线程通过开启线程之前调用setDaemon()方法,变成后台线程,前台线程运行完,后台线程自动会结束#########例子 c ...

  4. (4)进程---daemon守护线程和join阻塞

    join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用 ...

  5. 线程的join()方法

    官网描述 join public final void join() throws InterruptedException Waits for this thread to die. An invo ...

  6. “全栈2019”Java多线程第七章:等待线程死亡join()方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  7. Java:多线程<四> Lock、停止线程、守护线程、join、优先级&yield

    Java1.5以后,Condition将Object监视器方法(wait, notify, notifyAll)分解成截然不同的对象,以便通过这些对象与任意Lock实现组合使用为每个对像提供多个等待s ...

  8. Java中的后台线程和join方法

    /*守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡. 需求: 模拟QQ下载更新包. 一个线程默认都不是守护线程. */ public class Demo extend ...

  9. Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程

    一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. ​ threadin ...

随机推荐

  1. linux sed删除^M换行符以及^[[转义字符

    1. 删除文档中的蓝色转义字符^M 注意:^M 不能从键盘输入^和M,也不能复制.而是需要按Ctrl+v 然后再按Ctrl+M 按Ctrl+v的时候屏幕不会输出,再按下Ctrl+M的时候即会出现^M  ...

  2. groupby 技术

    分组键可以有很多形式,且类型不必相同: 1.列表或数组,其长度与待分组的轴一样 2.表示DataFrame某个列名的值 3.字典或Series,给出待分组轴上的值与分组名之间的对应关系 4.函数,用于 ...

  3. jquery实现表格复选框---多行选择问题(php变量)

    1.html多选框标签行 表头的多选框,用于全选,取消全选 <th><input id='allSelected' type="checkbox">< ...

  4. Zookeeper用作注册中心的原理

    RPC框架中有3个重要的角色: 注册中心 :保存所有服务的名字,服务提供者的ip列表,服务消费者的IP列表: 服务提供者: 提供跨进程服务: 服务消费者: 寻找到指定命名的服务并消费. 一:Zooke ...

  5. WPF ItemControl的源与选择项问题

    具体场景: datagrid的行中有个combox 每个行是一个实例A 每个行中的SelectedItem是实例A的一个属性B 我希望实现datagrid的复制Command,具体做法是A序列化反序列 ...

  6. 【leetcode】951. Flip Equivalent Binary Trees

    题目如下: For a binary tree T, we can define a flip operation as follows: choose any node, and swap the ...

  7. mysql|tomcat|nginx|redis在docker中的部署

    MySQL部署 拉取MySQL镜像 docker pull mysql 查看镜像 创建MySQL容器 docker run -di --name pinyougou_mysql -p 33306:33 ...

  8. docker的备份和迁移

    备份与迁移 容器保存为镜像 我们可以通过以下命令将容器保存为镜像 docker commit pyg_nginx mynginx pyg_nginx是容器名称 mynginx是新的镜像名称 此镜像的内 ...

  9. 测试使用python的用途

    使用Python:1. 分析日志,尤其是服务器端日志.脚本就是短小精悍的2. 用来生成测试数据,比如生成随机的10w个词,很麻烦:如果找一个字库,存在数表里,然后用Python取数据3. 做数据发出的 ...

  10. 【spring】1.2、Spring Boot创建项目

    Spring Boot创建项目 在1.1中,我们通过"Spring Starter Project"来创建了一个项目,实际上是使用了Pivotal团队提供的全新框架Spring B ...