• Java多线程:Thread类常用API


    Thread常用方法
    获取线程名称getName()、设置名称setName()、获取当前线程对象currentThread()。

    至于Thread类提供的诸如:yield、join、interrupt、不推荐的方法 stop 、守护线程、线程优先级等线程的控制方法,在开发中很少使用。

    Thread获取和设置线程名称

    方法说明
    String getName​()获取当前线程的名称,默认线程名称是Thread-索引
    void setName​(String name)将此线程的名称更改为指定的名称,通过构造器也可以设置线程名称

    注意
    如果不设置线程名字的话,是会有默认线程名的:Thread-索引,如果要设置线程名,则需在线程类中声明构造器,然后使用super(name),即Thread类中已经定义了名字变量,直接使用即可。
    代码如下

    public class MyThread extends {
        public MyThread() {
        }
    
        public MyThread(String name) {
            // 为当前线程对象设置名称,送给父类的有参数构造器初始化名称
            super(name);
        }
    
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println( Thread.currentThread().getName() + "输出:" + i);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    Thread类获得当前线程的对象

    在这里插入图片描述
    注意
    1、此方法是Thread类的静态方法,可以直接使用Thread类调用;
    2、这个方法是在哪个线程执行中调用的,就会得到哪个线程对象;

    public class ThreadDemo01 {
        // main方法是由主线程负责调度的
        public static void main(String[] args) {
            Thread t1 = new MyThread("1号");
            // t1.setName("1号");
            t1.start();
            System.out.println(t1.getName());
    
            Thread t2 = new MyThread("2号");
            // t2.setName("2号");
            t2.start();
            System.out.println(t2.getName());
    
            // 哪个线程执行它,它就得到哪个线程对象(当前线程对象)
            // 主线程的名称就叫main
            Thread m = Thread.currentThread();
            System.out.println(m.getName());
            m.setName("最牛的线程");
    
            for (int i = 0; i < 5; i++) {
                System.out.println( m.getName() + "输出:" + i);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    Thread类的线程休眠方法

    在这里插入图片描述

    public class ThreadDemo02 {
        // main方法是由主线程负责调度的
        public static void main(String[] args) throws Exception {
            for (int i = 1; i <= 5; i++) {
                System.out.println("输出:" + i);
                if(i == 3){
                    // 让当前线程进入休眠状态
                    Thread.sleep(3000);
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    板凳----Linux/Unix 系统编程手册 25章 进程的终止
    c++标准模板库:STL
    实验2 创建数据集(一)
    设计模式 12 享元模式
    docker registry web ui 及私有镜像仓库 安装配置记录
    Java实现图片保存到pdf的某个位置2
    .NET 进程内队列 Channel 的入门与应用
    Docker容器
    临床研究职业怎么应用RPA桌面端和移动端简单易用、快速上手
    聚观早报 | OPPO公布全新AI战略;华为P70 Art影像细节曝光
  • 原文地址:https://blog.csdn.net/weixin_52341477/article/details/125470976