首页 > 编程知识 正文

java获取当前所有线程(获取线程执行结果)

时间:2023-12-20 16:55:07 阅读:318575 作者:KIAJ

本文目录一览:

Java如何获取正在运行的线程的Id

使用:Thread.currentThread().getName() 就可以了

比如会输出:pool-1-thread-7

用c语言 java 来获取当前(进程)线程状态

通过调用Thread.getState()方法获取当前线程的状态。以下是我的代码,可以直接编译运行。

public class Test {

public static void main(String[] args) {

new NewThread().start(); //启动线程

}

}

class NewThread extends Thread{

public NewThread() {

super("NewThread"); //定义当前线程的名称为NewThread

}

@Override

public void run() {

System.out.println("当前线程:"+currentThread().getName()+"运行状态为:"+getState()); //打印线程的运行状态

}

}

java 根据线程名字查询一个线程,能实现吗?

根据线程名称找到线程,在java中是可以实现的,实现步骤是:

1、首先获取Java VM中当前运行的所有线程

以下代码是用数组返回Java VM中当前运行的所有线程

public static Thread[] findAllThreads()

{

    ThreadGroup group = Thread.currentThread().getThreadGroup();

    ThreadGroup topGroup = group;

    /* 遍历线程组树,获取根线程组 */

    while ( group != null )

    {

        topGroup    = group;

        group        = group.getParent();

    }

    /* 激活的线程数加倍 */

    int estimatedSize = topGroup.activeCount() * 2;

    Thread[] slackList = new Thread[estimatedSize];

    /* 获取根线程组的所有线程 */

    int actualSize = topGroup.enumerate( slackList );

    /* copy into a list that is the exact size */

    Thread[] list = new Thread[actualSize];

    System.arraycopy( slackList, 0, list, 0, actualSize );

    return (list);

}

2、遍历线程,比对名称,找到需要寻找的线程

以下代码可得到线程的名称

String name = thread.getName();

java获得当前线程有两种方法,第一种是Thread.currentThread();谁知道另外一种?

另外一种是实现Runnable接口,implements Runnable

这种方法有两个好处是

(1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。

(2)可以避免由于Java的单继承特性带来的局限。经常碰到这样一种情况,即当要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。