关键词搜索

源码搜索 ×
×

一篇文章带你搞定在 Java 中取得和设置多线程名称

发布2020-01-16浏览1423次

详情内容

在 Thread 类中可以通过 getName() 方法取得线程的名称,还可以通过 setName() 方法设置线程的名称。

线程的名称一般在启动线程前设置,但也允许为已经运行的线程设置名称,允许两个 Thread 对象有相同的名称,但应该尽量避免这种情况的发生。

(1)在线程操作中,如果没有为一个线程指定一个名称,则系统在使用时会为线程分配一个名称,名称的格式为 Thread-Xx

class MyThread implements Runnable{//实现 Runnable 接口
    public void run(){//覆写run() 方法
        for(int i=0;i<3;i++){
            System.out.println(Thread.currentThread().getName()
            + "运行,i = " + i);//取得当前线程的名称
        }
    }
}

public class Root{
    public static void main(String[] args) {
        MyThread my = new MyThread();//定义 Runnable 子类对象
        new Thread(my).start();//系统自动设置线程名称
        new Thread(my,"线程-A").start();//手工设置线程名称
        new Thread(my,"线程-B").start();//手工设置线程名称
        new Thread(my).start();//系统自动设置线程名称
        new Thread(my).start();//系统自动设置线程名称
    }
}

    在这里插入图片描述
    (2)主方法实际上也是一个线程

    class MyThread implements Runnable{//实现 Runnable 接口
        public void run(){//覆写 Thread 类中的 run() 方法
            for(int i=0;i<3;i++){//超出票数的循环
                System.out.println(Thread.currentThread().getName()
                + "运行,i = " + i);//取得当前线程的名称
            }
        }
    }
    
    public class Root{
        public static void main(String[] args) {
            MyThread my = new MyThread();//定义 Runnable 子类对象
            new Thread(my,"线程").start();//启动线程
            my.run();//直接调用 run 方法
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述
    程序中,主方法直接通过 Runnable 接口的子类对象调用其中的 run() 方法,另外一个是通过线程对象调用 start() 方法启动的,由结果发现,主方法实际上也是一个线程

    (3)注意
    在 Java 中所有的线程都是同时启动的,哪个线程先抢到了 CPU 资源就先运行哪个

    Java 程序每次至少启动 2 个线程

    每当使用 Java 命令执行一个类时,实际上都会启动一个 JVM,每一个 JVM 实际上就是在操作系统中启动了一个进程,Java 本身具备了垃圾的收集机制

    所以在 Java 运行时至少会启动两个线程,一个是 main 线程,另外一个是垃圾收集线程

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载