您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 0浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 Thread类线程名字源码分析

java持续实践 发布时间:2020-08-30 16:17:31 ,浏览量:0

文章目录
      • 线程名字

线程名字

一个好的习惯是 每创建一个线程, 就给它起一个有意义的名字. 这样在生产环境或者测试环境排查错误的时候, 能够快速的定位错误. Thread类中, 线程名称的代码如下. 可以看到是一个从0自增的,

 private static int threadInitNumber;
    private static synchronized int nextThreadNum() {
        return threadInitNumber++;
    }

 public Thread() {
        init(null, null, "Thread-" + nextThreadNum(), 0);
    }

如下的代码为Thread类中设置线程名称的源码. 注意的是, 线程内部的名称,即使是线程调用了start方法也能修改. 但是setNativeName方法,有做一个判断, jvm中的线程的名称, 一旦运行起来了, 就不能进行修改了. threadStatus 为0代表没有调用start方法

    public final synchronized void setName(String name) {
        checkAccess();
        if (name == null) {
            throw new NullPointerException("name cannot be null");
        }

        this.name = name;
        if (threadStatus != 0) {
            setNativeName(name);
        }
    }
关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0382s