守护线程的有效应用

守护线程

守护线程也称之为后台线程,守护线程的主要作用于为其他线程提供服务,当守护线程守护的主线程结束后,守护线程也将结束,比如,文件下载时,一条主线程实现文件拷贝,另一条子线程用于计算下载进度,该条子线程主要为下载线程提供服务,因此计算下载进度的线程可以定义为守护线程;只需要调用Thread类提供的setDaemon()方法即可实现,java中要将其他线程设置为守护线程。

案例一:

/**
 * 守护线程也称为后台线程。
 * 默认创建的线程都是普通线程,守护线程是通过调用线程的setDaemon方法转变的
 *守护线程的使用上与普通线程没有区别,但是在结束时机上有些不同:进程的退出。
 * 当进程中所有的普通线程都结束时,进程就会结束,此时正在执行的所有守护线程都会被强制停止。
 */
public class DaemonDemo {    
  public static void main(String[] args) {       
    //公主        
    Thread princess = new Thread() {       
      public void run() {                
        for(int i=0;i<5;i++) {   
          System.out.println("公主:let me go!");       
          try {         
            Thread.sleep(1000);      
          } catch (InterruptedException e) {  
          }           
        }          
        System.out.println("princess:别守护啊,来救我!");  
        System.out.println("扑通!");        
      }       
    };        
    //骑士 (守护线程)     
    Thread knight = new Thread() {         
      public void run() {   
        while(true) {    
          System.out.println("knight:my princess,我将永远守护你!");             
          try {
             Thread.sleep(1000);      
          } catch (InterruptedException e) {  
          }             
        }         
      }       
    };        
    princess.start();    
    /*      
     * 当参数为true时,将该线程转换为守护线程   
     * 需要注意:必须在线程启动前进行。   
     */       
    knight.setDaemon(true);   
    knight.start();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值