P7 currentThread()的一个复杂案例

代码示例:

package Donglizijie.com.wkcto.threadmehtod;

/**
 * @Author: 从南到北
 * @Date: 2022/01/03/19:59
 *
 */
public class SubThread2 extends Thread{

    public SubThread2(){
        System.out.println("构造方法中,Thread.currentThread().getName():"+Thread.currentThread().getName());
        System.out.println("构造方法中,this.getName():"+this.getName());
    }

    @Override
    public void run() {
        System.out.println("run方法中,Thread.currentThread().getName():"+Thread.currentThread().getName());
        System.out.println("run方法中,this.getName():"+this.getName());
    }
}

测试代码

package Donglizijie.com.wkcto.threadmehtod;

/**
 * @Author: 从南到北
 * @Date: 2022/01/03/20:03
 */
public class Test02CurrentThread {
    public static void main(String[] args) throws InterruptedException {
        //创建子线程对象
        SubThread2 t2 = new SubThread2();

        t2.setName("t2");       //设置线程名称
        t2.start();  //start启动,执行run方法

        Thread.sleep(500);  //main线程休眠500秒
        //Thread(Runnable)构造方法形参是 Runnable 接口,调用时传递的实参是接口的[实现类对象]

       Thread t3 = new Thread(t2);
//     t3.setName("t3");
       t3.start();

    }
}

运行结果:
在这里插入图片描述

重点分析点:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

一个程序至少执行两个线程,
main和垃圾回收机制
所以,通过重写runnable方法实现多线程的,需要创建线程对象即下面这个步骤

在这里插入图片描述

this是指的当前对象

参考链接:

https://www.bilibili.com/video/BV1Rv411y7MU?p=7

实现多线程的两种方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值