我有两个实现Runnable的类(A& B)。
两个线程都以这种方式执行:
A a = new A();
new Thread(a).start();
B b = new B();
new Thread(b).start();
我需要在线程B内停止/等待/恢复线程A.
怎么可能?
答案 0 :(得分:1)
实际上,你不能只是停下脚步。正如标记空间所评论的那样,这是可能的,但是你应该在一些特殊情况下仔细进行
Java Thread Primitive Deprecation
为什么Thread.stopdeprecated?
因为它本质上是不安全的。停止线程会导致它解锁已锁定的所有监视器。 (当theThreadDeath异常向上传播时,监视器将被解锁。)
答案 1 :(得分:1)
没有办法在java中暂停/恢复线程。如果你想要这个,你应该自己实现它 - 例如在某种条件下等待。
Here你可以看到一个例子,如何在互斥上进行线程等待,然后通知它。无论如何,只有当线程执行一些周期性的东西时才有可能。如果线程操作是可靠的,则无法实现您的目标。