线程基础核心 06 线程属性

admin / 开发 / ... / Reads: 3

1.案例

1.1.线程Id

简述:

1.线程Id,是线程的唯一身份标识

2.用于JVM执行过程中,识别线程

package com.anan.thread.threadproperty;

/**
 * 线程属性:Id
 * 1.线程Id,是线程的唯一身份标识
 * 2.用于JVM执行过程中,识别线程
 */
public class ThreadIdDemo {

    public static void main(String[] args) {
        // 创建线程对象
        Runnable r1 = new MyRunnable();
        Thread t1 = new Thread(r1);
        t1.start();

        // 打印主线程main的Id
        System.out.println("【主】线程Id:" + Thread.currentThread().getId());
    }

}

/**
 * 实现Runnable接口,创建线程
 */
class MyRunnable implements Runnable{
    public void run() {
        System.out.println("【子】线程Id:" + Thread.currentThread().getId());
    }
}

277330-20200212094555710-1255399128

1.2.线程名称

简述:

1.线程名称,可以在创建线程对象的时候设置(有默认名称)

2.用于在开发过程中,方便调试,或者友好阅读

package com.anan.thread.threadproperty;

import java.util.concurrent.TimeUnit;

/**
 * 线程属性:Id
 * 1.线程名称,可以在创建线程对象的时候设置(有默认名称)
 * 2.用于在开发过程中,方便调试,或者友好阅读
 */
public class ThreadNameDemo {

    public static void main(String[] args) throws InterruptedException{
        // 创建两个线程对象
        Runnable r1 = new MyRunnable1();
        // 使用默认线程名称
        Thread t1 = new Thread(r1);
        t1.start();

        // 休眠1秒,实现顺序打印
        TimeUnit.SECONDS.sleep(1);

        // 指定线程名称
        Thread t2 = new Thread(r1,"my-thread-2");
        t2.start();
    }

}

/**
 * 实现Runnable接口,创建线程
 */
class MyRunnable1 implements Runnable{
    public void run() {
        System.out.println("线程名称:" + Thread.currentThread().getName());
    }
}

1

关于作者

王硕,网名信平,十多年软件开发经验,业余架构师,精通Java/Python/Go等,喜欢研究技术,著有《PyQt 5 快速开发与实战》《Python 3.* 全栈开发》,多个业余开源项目托管在GitHub上,欢迎微博交流。

Comments

Make a comment

Author: admin

Publish at: ...

关于作者

王硕,网名信平,十多年软件开发经验,业余架构师,精通 C/Java/Python/Go 等,喜欢读书,音乐和宅在家里。
Email: xujieiata@163.com

www.ultrapower.com ultrapower 王硕的博客,专注于研究互联网产品和技术,提供中文精品教程。