【发布时间】:2012-04-29 13:57:50
【问题描述】:
我在一个类中有两个方法read() 和write(),如下所示。
class Store
{
public void write()
{
// write to store;
}
public string read()
{
// read from store;
}
}
1) Store 对象是一个单例。
2) 我有一个 Writer 类将写入存储和几个 Reader 类将同时从存储中读取。
我的要求是当作者写到商店时,所有的读者都应该等待。即,当控制在write() 中时,所有对read() 的调用都应该被阻止。我如何实现这一目标?我在write() 方法中尝试过synchronize(Store.class),但似乎不适合我。
【问题讨论】:
-
您不想在类对象 (
synchronized (foo.class)) 上同步,而是在您正在操作的实例上同步。
标签: java multithreading concurrency