java - 如何暂停线程执行

标签 java

如何暂停某些线程的执行。我有 Thread t 和两个按钮,PAUSE 和 CONTINUE。暂停时我需要暂停线程执行并继续线程从之前停止的点开始执行。在听众中放什么?

最佳答案

Java 中的线程是协作的,这意味着您不能强制线程停止或暂停,而是您向线程发出您想要的信号,然后线程(= 您的逻辑)自行执行。

为此使用同步、wait() 和 notify()。

  1. 在要停止的线程中创建一个原子标志(例如 boolean 字段)。可停止线程在循环中监视此标志。循环必须在 synchronized block 内。
  2. 当您需要停止线程(单击按钮)时,您可以设置此标志。
  3. Thread 看到标志已设置并在公共(public)对象(可能是它自己)上调用 wait()
  4. 当你想重启线程时,重置标志并调用commonObject.notify()

关于java - 如何暂停线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058395/

相关文章:

Java:使用 Stream 连接两个 Map<String, Object> 列表

java - JAVA中模拟二维表的类

java - 使用opencv对网球场进行3D估算

java - R.java 文件消失

java - 整个程序的记录器打印消息两次,有时甚至打印更多次

java - 如何获得 Java 中具有重复项的所有组合(递归)?

java - 如何在字段级别对 Java 中的对象数组进行排序以进行等级比较?

java - 乘法口诀表中如何设置空格

java - 使用 LoganSquare 从 JSON 反序列化嵌套字段

Java:在列表中查找组合日期