【发布时间】:2011-10-09 03:37:33
【问题描述】:
假设我们有两个线程 A、B 和一个 Mutex(共享资源)M。
我启动了A线程(a.start()),它会调用M中的同步方法并导致A 等待()。 A进入wait()后线程B (b)如何跟随A?
谢谢
编辑:
是否有一种类似于 join() 的方法,其中线程 b 将加入处于 WAITING 状态时启动的线程 a? (我发现,join() 会在线程结束时发生,但我不希望这种情况发生
【问题讨论】:
-
那么线程A锁定了互斥体并调用了同步方法?有两种互斥机制还是只有一种? Object.wait 释放对象上的所有同步资源。
-
+1 - A 在 Mutex 中调用“公共同步”方法。从这个方法内部只有“wait()”(不是 threadObj.wait(),因为它将等待当前线程,即 A)。只要有 wait(),你就可以放任何代码
-
getState()和它有什么关系? -
@EJP 我在“new A().start()”下方尝试了 getState() 检查,但它没有执行该行。
-
所以它与问题无关,它只是问题解决后你得到的。我建议您将标题修改为描述实际主题的内容。目前它无法帮助您获得答案。
标签: java multithreading concurrency wait