美文网首页
二、Thread构造函数

二、Thread构造函数

作者: _Colbert | 来源:发表于2020-10-02 23:17 被阅读0次

2.1.1 线程的默认名字

当Thread构造函数中没有传入name时,线程会以“thread-”作为前缀与一个自增的数字进行组合。

public class TestThreadName {

    @Test
    public void testOne(){
        Thread thread = new Thread(){
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        };
        thread.start();

        Thread thread1 = new Thread(){
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        };
        thread1.start();
    }
}

Thread-0
Thread-1

2.1.2 给线程命名

 @Test
    public void testTwo(){
        new Thread("自己取得名字"){
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        }.start();
    }

输出:自己取的名字

2.1.3 修改线程的名字

调用setName()方法,给线程更改一个名字。必须在启动线程之前进行更改

 @Test
    public void testTwo(){
        Thread thread = new Thread("自己取得名字") {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        };

        thread.setName("改了个名字");
        thread.start();
    }
输出:改了个名字

2.2 线程的父子关系

  • 一个线程是由另一个线程创建的(例如在main函数中创建一个新的线程,新的线程就是main线程创建的)。

  • 被创建线程的父线程,就是创建他的线程。

    所有的构造函数都会去调用init()方法,下面是init()方法的源码。

    private void init(ThreadGroup g, Runnable target, String name,
                          long stackSize, AccessControlContext acc,
                          boolean inheritThreadLocals) {
            if (name == null) {
                throw new NullPointerException("name cannot be null");
            }
    
            this.name = name;
    
            Thread parent = currentThread();
            SecurityManager security = System.getSecurityManager();
    

TODO------------

相关文章

  • 二、Thread构造函数

    2.1.1 线程的默认名字 当Thread构造函数中没有传入name时,线程会以“thread-”作为前缀与一个自...

  • 并发编程-Thread源码解析及状态分析

    Thread源码解析 构造函数源码解析: Thread类对外开放的 public 构造 私有 构造 线程默认名称 ...

  • 并发

    c++11线程接口std::thread 构造方式 thread() 注意,构造方法中的函数可以是,某个实例的成员...

  • 内部类

    new Thread(){public void run(){}:} 之前一直认为,这是Thread的构造函数。妈...

  • ThreadApi详解

    这里会总结Thread中我认为比较重要的api的用法。 构造函数参数 介绍参数最多的一个构造函数Thread(Th...

  • C++11 线程管理

    1 线程启动 std::thread构造函数接受可调用对象启动线程,如下所示: 假设文件名为thread.cpp,...

  • Kotlin中类的定义

    Kotlin中定义类也是使用class关键字 基本格式 构造函数主构造函数二级构造函数 构造函数分为主构造函数和二...

  • Thread

    构造函数 创建 Thread 对象的时间都会调用 init() 方法,取一个最常用的构造方法 init() 方法的...

  • Kotlin学习笔记——基础语法篇之类和对象

    类的构造 Kotlin类的写法 Kotlin类的构造函数分为主构造函数和二级构造函数 主构造函数的特点——函数名为...

  • Handler-MessageQueue-Looper 源码阅读

    Handler 构造函数 构造函数一 构造函数二 其他构造函数,最终会调用上面两个构造函数中的一个。 四个重要的成...

网友评论

      本文标题:二、Thread构造函数

      本文链接:https://www.haomeiwen.com/subject/kwyiuktx.html