Java线程之间的交互

时间:2015-06-10 14:23:39

标签: java multithreading runnable

我有两个实现Runnable的类(A& B)。

两个线程都以这种方式执行:

A a = new A();
new Thread(a).start();

B b = new B();
new Thread(b).start();

我需要在线程B内停止/等待/恢复线程A.

怎么可能?

2 个答案:

答案 0 :(得分:1)

实际上,你不能只是停下脚步。正如标记空间所评论的那样,这是可能的,但是你应该在一些特殊情况下仔细进行

Java Thread Primitive Deprecation

  

为什么Thread.stopdeprecated?

     

因为它本质上是不安全的。停止线程会导致它解锁已锁定的所有监视器。 (当theThreadDeath异常向上传播时,监视器将被解锁。)

答案 1 :(得分:1)

没有办法在java中暂停/恢复线程。如果你想要这个,你应该自己实现它 - 例如在某种条件下等待。

Here你可以看到一个例子,如何在互斥上进行线程等待,然后通知它。无论如何,只有当线程执行一些周期性的东西时才有可能。如果线程操作是可靠的,则无法实现您的目标。