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(); } }
原文地址:https://www.cnblogs.com/zjdbk/p/8971407.html
时间: 2024-11-09 09:47:18