Java中线程的分类:用户线程与守护线程

  线程分为两种,用户线程守护线程

  其实守护线程和用户线程区别不大,可以理解为特殊的用户线程。特殊就特殊在如果程序中所有的用户线程都退出了,那么所有的守护线程就都会被杀死,很好理解,没有被守护的对象了,也不需要守护线程了。

  用户线程的启动就是线程调用start方法,就是我们平时使用new Thread()对象,或者实现Runable()接口创建的线程,当然也可以直接通过匿名内部类启动。

  启动守护线程也有两种方法,先来看看怎么启动守护线程 。

  最常用的一种是通过将用户线程转换为守护线程来启动线程从而启动守护线程。thread.setDaemon(true),这样可以设置该线程为守护线程,值得注意的是必须在线程启动start()方法之前设置。

  还有一个启动守护线程的方法就是利用Timer和TimerTask。Timer是JDK提供的定时器工具,使用时会在主线程之外单独起一个线程执行指定的任务。Timer timer = new Timer()启动的是用户线程,而Timer timer = new Timer(true)启动的就是守护线程。TimerTask是一个实现了Runnable接口的抽象类,配合Timer使用可以看做被Timer执行的任务,即启动的线程。

  还有一个值得注意的是守护线程中产生的线程都是守护线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值