java多线程----关于join方法的注意点,以及守护线程的小结

关于join方法:join方法一定要在start后,也就是先线程就绪,后加入,否则无效。请注意,join方法仅仅是让两个线程同步执行,仍然是两个线程,不是合并成一个。

运行结果如下
Java守护线程
1、什么是守护线程(Daemon线程)?
守护线程是一个后台运行的线程,与之对比的是用户线程(User线程)。它从属于创建它的线程,因此当创建守护的线程结束时,守护线程也随之消亡。(但守护进程若有自己的消亡逻辑,可以在被守护进程之前消亡)当正在运行的线程都是守护线程时,Java 虚拟机退出
2、如何创建守护线程?
创建一个新线程,用setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前(即start()之前)调用,当线程正在运行时调用会产生异常。 isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程(且守护同一个用户线程),用户线程同样。
3、守护线程的用处?
守护线程使用的情况较少,但并非无用,举例来说,JVM的垃圾回收、内存管理等线程都是守护线程。还有就是在做数据库应用时候,使用的数据库连接池,连接池本身也包含着很多后台线程,监控连接个数、超时时间、状态等等。
守护线程一般是为用户线程服务的。
4、守护线程与用户线程的区别.
用户线程拥有自己的生命周期,不依赖于创建它的线程。在创建它的线程结束后用户线程仍能继续运行。运行有限的一段时间的线程一般来说是用户线程。
守护线程在创建的线程结束时消亡。无限运行的线程通常应该定义成守护线程,只是因为需要一种结束它们的方式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值