003 Thread的构造

一 .Thread的构造

  首先看下源码 :   

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

我们可以看到Thread的构造使用了init()函数.

通过这个函数,Thread的构造就出现了多种.我们就需要理解一下init的方法.

    private void init(ThreadGroup g, Runnable target, String name,
                      long stackSize) {
        init(g, target, name, stackSize, null);
    }

我们可以看到这个四个参数的含义了

[1]线程组

[2]线程的逻辑单元

[3]线程的名字

[4]线程的栈大小


二 .线程的名字

Thread在创建的时候会指定一个名字,同时我们也能为一个线程指定一个名字.

默认情况下: 线程的名字为 Thead -数量 这样的名字.

    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        }) ;
        thread.setName("trek");
        thread.start();
    }

此处我们为线程指定了一个特定的名字.


三 线程组

[1] 如果一个线程没有声明一个线程组,那么它的线程组就是其父线程所在的线程组.

[2]main线程的线程组为main,


四 . 线程的stackSize

决定线程栈的大小,这个概念在JVM中会学下.

如果没有使用这个参数,虚拟机会默认给出一个大小.

这个参数在一些平台是无效的,因此我们一般不需要指定这个参数.

猜你喜欢

转载自www.cnblogs.com/trekxu/p/8969518.html
003