3-6线程各属性

各属性纵览

线程ID

每个线程都有一个ID,ID逐渐往上增加
main函数是第一个线程

/**
 * 描述:     ID从1开始,JVM运行起来后,我们自己创建的线程的ID早已不是2.
 */
public class Id {

    public static void main(String[] args) {
        Thread thread = new Thread();
        System.out.println("主线程的ID"+Thread.currentThread().getId());
        System.out.println("子线程的ID"+thread.getId());
    }
}

守护线程

作用: 给用户线程提供服务
线程分为用户线程和守护线程
。用户线程没有运行完,JVM 不会停止工作 相当于程序运行了一半,肯定不能停止
如果都是守护线程,如果都是守护线程,就会和JVM一起结束。因为他守护的对象都没有了,守护自身自然也没有价值了,就可以停止了

。代码执行完毕了,只是我们的线程执行完毕了,但是后边还有很多守护线程在执行,但是这些执行并不影响JVM的关闭。当JVM发现所有我们创建的用户线程都结束了,他就会和守护线程一起结束

。守护线程的作用就是给其他线程提供便利服务。比如垃圾处理器

。守护线程的三个特性:

1 线程类型默认继承父线程
2被谁启动
有JVM自动启动,
3不影响JVM退出:只看有没有用户线程,不看守护线程

。守护线程和普通线程的区别

整体无区别
唯一的区别是否影响JVM的退出

还有作用不同“:用户线程是执行我门逻辑的,守护线程是辅助我们的

。我们是否需要给线程设置为守护线程?
不应该
吧我们用户线程改成守护线程是不安全的,当你访问一个文件的时候,JVM以为只剩守护线程了,就把JVM关闭了,有可能造成数据的不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值