考虑一个原始类型变量,其中有大量线程读取和一些线程写入,以下代码是否可以正常工作?混合易失性并同步为读写锁
如果会,它会提供比1更好的性能)。声明所有方法同步; 2)。使用明确的ReadWriteLock?
这是常见模式吗?如果不是,这种情况通常使用什么样的模式?
这对我来说目前工作正常,但我觉得同时使用volatile和synchronized会有点多余。
private volatile int value = 1;
public void func1()
{
if (value == 1) {
// do something
}
}
public void func2()
{
if (value == 2) {
// do something
}
}
public void func3()
{
if (value == 3) {
// do something
}
}
public synchronized void increase()
{
if (value < 10) value++;
}
public synchronized void decrease()
{
if (value > 0) value--;
}
+1优秀的文章,对于想要更好地理解挥发物的人来说,“必须阅读” – Cerber 2013-12-27 14:43:02