gpt4 book ai didi

java - 如何获取当前正在运行的自定义线程变量

转载 作者:行者123 更新时间:2023-11-30 02:52:42 27 4
gpt4 key购买 nike

这是我的自定义线程类

  public class ThreadEngine extends Thread{
private int processid;
public int getProcessid() {
return processid;
}
public void setProcessid(int processid) {
this.processid = processid;
}
public void run(){
int count=0;
for(Thread t:Thread.getAllStackTraces().keySet()){
ThreadEngine t1=(ThreadEngine)t;
int processtid=t1.getProcessid();
if(t.getState()==Thread.State.RUNNABLE)count++;
}
}

}

在这里,我试图将当前运行的线程类型转换为我的自定义线程类,但我遇到了转换异常。

我想获取当前正在运行的线程的processid。这怎么可能?

最佳答案

有几个简单的方法可以解决这个问题。 Full working code on online java ide

你想实现什么目标?如果实例是 ThreadEngine,则 run() 方法始终在线程中运行。

因此,您可以简单地在 run() 方法中使用 getProcessid() 来访问进程 ID。

在任何其他地方,如果你想访问当前线程,你可以简单地使用Thread.currentThread() 返回当前线程。

如果您要查找任何线程而不仅仅是当前线程,那么您应该使用 instanceof 关键字确保它是否属于当前实例类型。

我已将工作代码附加在 codiva java online compiler ide 中.

关于java - 如何获取当前正在运行的自定义线程变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com