3.获取当前执行任务的线程

 

 

 

获取当前执行任务的线程

 引言

上一节我们学习了创建线程的三种方式,将任务提交给线程执行以后,如果我们想知道是哪一个线程正在执行这个任务该如何做,

currentThread

本节的内容就是介绍该如何获取当年正在执行任务的线程,通过thread类的currentThread此类的方法,

 

 

 

就可以获取当前正在执行任务的线程,他返回的是一个thread对象,该方法是一个静态方法,它可以直接通过类名来调用。下面我们来看看该方法如何使用。

直接通过Thread类名调用的currentThread方法返回一个thread的对象,该对象就是当前正在执行任务的线程,接着我们输出该程序,看看运行结果是什么,看看这个结果,我们可以来试着来解读一下它是什么意思。

package com.chenjie.executor.day03;

public class Main1 {
    public static void main(String[] args) {
        Thread thread = Thread.currentThread();
        System.out.println(thread);
    }
}

首先看红色部分,他们是一个固定格式,也就是说我们输出的格式就是这样的。

接着第一个main它代表线程的名称

这个数字5它代表的是现成的优先级,优先级越高,获取到CPU的执行权的概率也就越大,也就意味着你这个线程执行的次数也就越多,任务呢也就越早被执行完。

后面这个main它代表的是线程所处的线程组名称,每一个线程都必须加入一个线程组,这个main它就代表当前线程所处的线程组的叫做main,同时也说明了我们的主线程所处的线程组,它就是叫做main,那么这个输出的格式在哪里?可以看呢,它可以在thread内的 tostring方法可以看到,这段代码展示的就是tostring源码。 

着重呢我们来看return这部分。先来看绿色部分的代码,他们没有特殊的含义,就是输出的格式。再来看getPriority方法,该方法用于获取线程的名称,他对应刚刚的结果就是第一个main

下一个是 getpriority方法。该方法呢它就是来获取现成的优先级的,它就是那个数字5。最后我们来看看这个group.getName()方法。它就是来获取线程所属的线程组名称,它对应的结果就是刚刚那个最后那个main。 

好了,打印结果就先分析到这。

总结

我们来总结一下本节的内容。本节我们主要介绍了currentThread方法,它是一个静态方法,作用呢是返回当年正在执行的任务的线程,实际开发中呢我们偶尔也会用到它。 

 

posted @ 2022-04-12 12:54  小陈子博客  阅读(1030)  评论(0)    收藏  举报