Java-多线程-给线程命名

Java-多线程-给线程命名

  • 在Java中,通过继承Thread创建的线程,有以下两种方式可以给线程命名;
  • 通过构造器命名
    • 因为线程类继承自Thread类,所有也继承了Thread的name属性,可以通过super的方法调用父类构造器,将name传给构造器完成线程的命名
public class TestThread extends Thread{// 继承了Thread类之后,才具备争抢资源的能力
    // 给线程命名,弄一个有参的构造器, 调用父类的构造器,将name传过去
    public TestThread(String name) {
        super(name);
    }
    // 这个线程要执行的任务要放在run方法
    // 但是这个方法,必须是重写Thread类中的run方法,线程的逻辑要写在run方法中
    @Override
    public void run() {
        for (int i = 1; i < 11; i++) {
            System.out.println(this.getName()+i);
        }
    }
}
  • 通过set方法进行命名
    • 因为线程类继承自Thread类,所有也继承了Thread的name属性与set和get方法,可以通过调用set方法来完成线程的命名
public class TestThreadName {
    // 这是main方法,实现程序主要逻辑
    public static void main(String[] args) {
        // 方法一,使用构造器给线程命名
        // TestThread t1 = new TestThread("子线程");
        // 方法二:使用set方法,给线程命名
        TestThread t1 = new TestThread();
        t1.setName("子线程");
        t1.start();
    }
}
  • 通过Thread.currentThread()方法来进行设置线程名字
public class TestThread extends Thread{// 继承了Thread类之后,才具备争抢资源的能力
    // 这个线程要执行的任务要放在run方法
    // 但是这个方法,必须是重写Thread类中的run方法,线程的逻辑要写在run方法中
    @Override
    public void run() {
        // 方式三,通过Thread.currentThread()方法来进行设置线程名字
        Thread.currentThread().setName("子线程");
        for (int i = 1; i < 11; i++) {
            //System.out.println(this.getName()+i);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值