检索java中已生成线程的列表
在java中,是否有一些API可以帮助检索已产生的线程,我试图准备一些示例程序,通过列出已产生的线程来学习并清楚地看到已产生的线程,但无法做到。 我还有一个疑问,线程一旦屈服,是否会再次运行,或者从停止点开始运行。根据我的观察,它从相同的stacktrace开始,因为run没有被反复调用。对吗? 屈服使线程状态变为可运行,但它可以与处于可运行状态的其他线程区分开来 或者任何其他明确说明线程的程序。我也正在制作样品检索java中已生成线程的列表,java,multithreading,Java,Multithreading,在java中,是否有一些API可以帮助检索已产生的线程,我试图准备一些示例程序,通过列出已产生的线程来学习并清楚地看到已产生的线程,但无法做到。 我还有一个疑问,线程一旦屈服,是否会再次运行,或者从停止点开始运行。根据我的观察,它从相同的stacktrace开始,因为run没有被反复调用。对吗? 屈服使线程状态变为可运行,但它可以与处于可运行状态的其他线程区分开来 或者任何其他明确说明线程的程序。我也正在制作样品 public class ThreadYieldDemo implements R
public class ThreadYieldDemo implements Runnable {
Thread t;
ThreadYieldDemo(String str) throws InterruptedException {
t = new Thread(this, str);
System.out.println(" State = "+t.getState()+" "+str);
t.start();
System.out.println(" State-1 = "+t.getState()+" "+str);
}
public void run() {
System.out.println("Entry = "+Thread.currentThread().getName()+" State = "+Thread.currentThread().getState());
Random random = new Random();
int next = random.nextInt(10);
if(next%2==0)
{
System.out.println(Thread.currentThread().getName());
System.out.println("In: "+Thread.currentThread().getState());
}
else
{
System.out.println(Thread.currentThread().getName()+" yielded...");
Thread.yield();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("yield = "+Thread.currentThread().getState());
}
}
public static void main(String[] args) throws InterruptedException {
new ThreadYieldDemo("Thread 1");
new ThreadYieldDemo("Thread 2");
new ThreadYieldDemo("Thread 3");
new ThreadYieldDemo("Thread 4");
new ThreadYieldDemo("Thread 5");
}
}
在代码中不能执行此操作
但您可以使用或探查器,它可能会向您显示更多详细信息。但我仍然认为它不会显示线程是否已生成…您可以设置断点并查看IDE中的线程吗?它告诉你什么了吗?