21-25
Thread、runable的区别
Thead是实现了runable
thead是is runable是like
thead相当于在runable上做了一个拓展,如果要实现一个复杂的线程时可以考虑runable
说说你对於守护线程的理解
守护线程为其他菲守护线程提供服务的线程,任何守护线程都是为整个jvm的非守护线程服务的。他的存在是无关紧要的,依赖于程序,程序结束,直接终端守护线程,所以守护线程自己的终止是无法控制的,所以不要把文件和io交给守护线程。
守护线程的作用
GC垃圾回收线程,就是一个经典守护线程,当其他thead死掉之后就没有生成垃圾了所以gc就关闭
守护线程的应用场景:
(1)为其他线程提供服务支持
(2)或者当程序结束时这个线程就要正常立刻关闭就可以使用守护线程,反之如果必须要正确的关闭不然就会产生不好的影响那么就不要使用守护线程。
thrad。Setdaemon(tur)要在strat之前使用,不可以把在正在运行的线程设置为守护线程。在守护线程中产生的线程也必须要是守护线程才可以,因为会不正常结束。
守护线程不能用于访问固有资源。比如读写操作或者计算逻辑,因为他会在任何时候甚至一个操作的中间发生中断。
Java自带的多线程框架,如executorsercvice会把守护线程转化为用户线程,所以如果要使用后台线程就不要使用Java线程池
theardlocal的原理和使用场景
每一个thread