java - 如何检查线程是否正在运行

标签 java multithreading threadpool

我想检查哪个线程正在工作/运行。当 5 个线程正在工作/运行时需要暂停然后-> 当 1 被释放/完成/停止时,下一个排队的线程将开始/运行。

怎么做

最佳答案

您可以使用返回 Thread.States 枚举的 getState() 方法来获取线程所处的状态。线程在给定时间点只能处于以下状态之一。

NEW 尚未开始执行的新线程。
RUNNABLE 在 Java 虚拟机中执行的线程。
BLOCKED 阻塞等待监视器锁的线程。
WAITING 等待另一个线程通知的线程。
TIMED_WAITING 等待另一个线程通知特定时间的线程。
TERMINATED 运行方法已结束的线程。

Thread t = new Thread();
Thread.State e = t.getState();
Thread.State[] ts = e.values(); 
  for(int i = 0; i < ts.length; i++){
   System.out.println(ts[i]); 
  }   

关于java - 如何检查线程是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472050/

相关文章:

c# - 如何制作从 C# "Thread-safe"调用的 C (P/invoke) 代码

multithreading - 为 Perl 推荐哪个线程池管理器?

c# - C# Windows 窗体中是否有 QTimer::singleShot 等效项?

java - 将 reSTLet 与 Eclipse Virgo 结合使用

java - SMTP 发送邮件不适用于 office365

java - getView() 方法在带有 gridview 的自定义适配器中未调用

Playframework 带有用于后台作业的线程池

java - 在 Eclipse RCP 中使用拖放在 View 之间传输项目?

c# - 带锁的单例属性如何保证线程安全?

multithreading - C++ 11 中宽松内存模型的底层机制是什么?