1
我是新同步主题,在尝试访问同步对象时找不到有关使用wait()
,notify()
和notifyAll()
方法的任何地方的明确信息。对于〔实施例,如果我们有这样的代码:同步多个线程之间的数据
class X extends Thread {
int x;
public void methodX()
{
synchronized(this)
{
//some operations on x
}
}
}
class Y extends Thread {
public void methodY(X x)
{
int z = x.x;
}
}
我们应该倡导:在methodY()
和notify()
wait()
在methodX()
结束了吗? 否则,我们不会为z
分配任何值,否则线程将等待,直到X解锁为止,而不显式调用wait()
?
你想做什么?包括主要() – 2013-05-08 12:24:20
不,你不应该。由于X.x被多个线程访问,所以每个访问都应该简单地在同一个对象上同步。阅读Brian Goetz的[Java并发教程](http://docs.oracle.com/javase/tutorial/essential/concurrency/)和Java Concurrency in Practice。还请阅读wait()和notify()的javadoc以了解它们的用途和用途。 – 2013-05-08 12:25:49
请澄清一下......你的要求是'method'的赋值在'methodX'执行之后才会出现? – 2013-05-08 12:27:15