Java高并发编程学习--1. 线程的命名

一、线程的默认名称

如果没有显示地指定一个线程的名称,线程会以"Thread-"和一个在JVM中不断自增的数字组合,形成线程名称。
package threadName;

import java.util.stream.IntStream;

/**
 * @ClassName ThreadName
 * @Description TODO
 * @Author Cays
 * @Date 2019/5/1 10:40
 * @Version 1.0
 **/
public class ThreadName {
    public static void main(String[] args) {
        IntStream.range(0,5).boxed().map(i->new Thread(
                ()-> System.out.println(Thread.currentThread().getName())
        )).forEach(Thread::start);
    }
}

在这里插入图片描述

二、命名线程

线程构造函数:
Thread(String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, String name)

线程启动前可以对线程名称进行修改。

package threadName;

import java.util.stream.IntStream;

public class ThreadName {
    public static void main(String[] args) {
        /*IntStream.range(0,5).boxed().map(i->new Thread(
                ()-> System.out.println(Thread.currentThread().getName())
        )).forEach(Thread::start);*/
        Thread a=new Thread(()-> System.out.println(Thread.currentThread().getName())
                ,"aaa");
        a.setName("bbbb");
        a.start();
        a.setName("ccc");
    }
}

在这里插入图片描述

三、线程的父子关系

  • 一个线程的创建由另一个线程完成
  • 被创建线程的父线程是创建它的线程
  • main函数所在的线程由JVM创建,即main线程,意味着我们创建的线程的父线程都是main线程

猜你喜欢

转载自blog.csdn.net/qq_39400984/article/details/89736444