【问题标题】:Is there a way to pause all threads from the main one in Java?有没有办法暂停Java中主要线程的所有线程?
【发布时间】:2021-09-12 22:17:05
【问题描述】:

基本上就是这样。假设我有一个有 6 个线程的程序(包括主线程)。有没有办法暂停/睡眠/暂停主线程中的所有其他 5 个线程?假设通过获取他们的 ID,然后用它来暂停他们所有人(或通过任何其他方法)。

【问题讨论】:

  • Thread.suspend() 和一些支持方法已被弃用并且不再有效(查看 Java 文档)。除了一些本土的方法,我不知道其他方法。甚至那些也可能引入由挂起引起的相同死锁问题。

标签: java multithreading sleep pause suspend


【解决方案1】:

这将为您提供迄今为止创建的应用程序的所有线程

Set<Thread> threadSet = Thread.getAllStackTraces().keySet();

要停止线程,您必须编写自己的自定义线程类,如本示例中所述,它使用标志来控制线程执行

https://www.baeldung.com/java-thread-stop

在迭代线程集时threadSet设置标志的值以使其停止

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-19
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多