当前位置: 首页 > 面试题库 >

如何暂停然后恢复线程?

岳永思
2023-03-14
问题内容

我声明我已阅读有关线程的内容,但从未使用过。所以我问你:)

我有两个线程:AB,其中A管理GUI和B逻辑。

我将从开始A

然后在A绘制GUI时,我将其暂停,以等待B到达X点的run方法。

B到达X点进入run方法时,我暂停B并继续A

AB共享一些变量来管理GUI和逻辑…

我可以做吗?如果是,如何?:)


问题答案:

使用wait()notify()方法:

wait() -使当前线程等待,直到另一个线程调用 该对象notify()notifyAll()方法。

notify() -唤醒正在该对象的监视器上等待的单个线程。



 类似资料:
  • 问题内容: 我在viewDidAppear中有一个图像,并用以下代码对其进行了动画处理: 我想在点击时暂停动画,如果再次点击它则继续播放动画。 问题答案: 暂停和恢复动画的2个功能,我从这里开始转换为Swift。 我有一个按钮可以暂停或恢复在中初始化的动画:

  • 问题内容: 我想暂停Docker容器并稍后再恢复。如何才能做到这一点?通过挂起,我的意思是它应该保存正在进行的过程的状态(例如,视频编码),然后随时将其恢复。 问题答案: 从0.12.0版开始,Docker支持和命令使用cgroup freezer暂停和恢复容器。

  • 当onPause发生时,我的线程没有停止,导致“线程已启动”logcat错误onResume,因为我无法运行两个线程实例。此时如何终止线程?我认为我需要做一些事情,比如: 但是我不能把它添加到我的气球基本暂停中,我认为上下文是错误的。所以请帮忙,代码如下所示。(代码示例会很有帮助,谢谢) 我的活动: 我的表面视图: 我的线程:公共类 GameLoopThreadBasic 扩展线程 { 私有游戏视

  • 嗨,我在camel中有一个JMS消费者路由,我的要求是在特定事件时停止/暂停该路由(基于某个字段值),然后使用调度器恢复该路由。为此,我创建了两个路由,一个是我的原始jms消费者路由,另一个是调度程序路由,它们恢复jms消费者路由,虽然我能够暂停路由,但第二个路由不恢复暂停的路由,它显示的状态为已启动。 以下是我的两条路线 请帮助我如何实现上述场景。

  • 问题内容: 有没有一种方法可以使用ExecutorService暂停/恢复特定线程? 想象一下,我想停止id == 0的线程(假设为每个线程分配了一个增量ID,直到达到线程池的大小为止)。 过了一会儿,通过按下一个按钮,我想恢复该特定线程,并将所有其他线程保留为当前状态,这些状态可以暂停或恢复。 我在Java文档中发现了PausableThreadPoolExecutor的未完成版本。但这不适合我

  • 问题内容: 我有一个基本的Swing UI,带有一个标记为“播放”的按钮。按下按钮后,标签变为“暂停”。现在,当按下按钮时,它变为“继续”。 在“播放”中,我将实例化并执行一个SwingWorker。我想要的是能够暂停该线程(不要取消该线程),并根据上述按钮按下来恢复它。但是,我不想在doInBackground()中求助于Thread.sleep()。这似乎有点骇人听闻。有什么方法可以阻止运行d