java多线程----关于join方法的注意点,以及守护线程的小结
2017-08-07 13:25
633 查看
关于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、守护线程与用户线程的区别.
用户线程拥有自己的生命周期,不依赖于创建它的线程。在创建它的线程结束后用户线程仍能继续运行。运行有限的一段时间的线程一般来说是用户线程。
守护线程在创建的线程结束时消亡。无限运行的线程通常应该定义成守护线程,只是因为需要一种结束它们的方式。
Java守护线程
1、什么是守护线程(Daemon线程)?
守护线程是一个后台运行的线程,与之对比的是用户线程(User线程)。它从属于创建它的线程,因此当创建守护的线程结束时,守护线程也随之消亡。(但守护进程若有自己的消亡逻辑,可以在被守护进程之前消亡)当正在运行的线程都是守护线程时,Java 虚拟机退出
2、如何创建守护线程?
创建一个新线程,用setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前(即start()之前)调用,当线程正在运行时调用会产生异常。 isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程(且守护同一个用户线程),用户线程同样。
3、守护线程的用处?
守护线程使用的情况较少,但并非无用,举例来说,JVM的垃圾回收、内存管理等线程都是守护线程。还有就是在做数据库应用时候,使用的数据库连接池,连接池本身也包含着很多后台线程,监控连接个数、超时时间、状态等等。
守护线程一般是为用户线程服务的。
4、守护线程与用户线程的区别.
用户线程拥有自己的生命周期,不依赖于创建它的线程。在创建它的线程结束后用户线程仍能继续运行。运行有限的一段时间的线程一般来说是用户线程。
守护线程在创建的线程结束时消亡。无限运行的线程通常应该定义成守护线程,只是因为需要一种结束它们的方式。
相关文章推荐
- java多线程之守护线程以及Join方法
- Java多线程 小知识 守护线程(后台线程)setDaemon、join方法、优先级、yield方法
- java线程中join方法原理,以及守护线程的使用
- 黑马程序员:Java基础——多线程的停止与守护以及Join,优先级和yield方法
- java基础学习__多线程(停止线程,守护线程,join方法)
- Java-----多线程小知识点:join()方法和守护线程
- 多线程:interrupt()方法 守护线程 join()方法 及优先级
- Java多线程中关于join方法的使用实例解析
- 多线程---其他方法 停止线程、守护线程、join方法
- java多线程中关于join方法的使用
- Java多线程中join方法_保证线程执行完后再销毁activity
- 多线程基础四(三)、yield方法、线程优先级以及守护线程
- 关于java中main()方法以及命令行参数的若干注意
- Java 多线程 (PART VII) 使用join()方法保证线程的执行顺序
- java多线程中关于join方法的使用
- 关于java中多线程的问题的一点思考(什么情况下需要考虑到线程,以及线程安全的问题?)
- java线程当中 sleep() join() yield()方法的简单比较以及如何保护共享数据介绍
- 黑马程序员-------------多线程中的(线程、线程组、线程池、以及Java的设计模式)概念及方法的总结
- 黑马程序员------多线程(No.3)(停止线程、守护线程、Join方法、优先级&yield方法、总结)
- Java线程和多线程(二)——对象中的wait,notify以及notifyAll方法