同步新的读取和内存屏障

时间:2018-10-13 11:05:04

标签: java multithreading synchronized java-memory-model

我已阅读以下文章http://javaexp.blogspot.com/2007/12/difference-between-volatile-and.html,并了解:

  

实际上,同步将整个线程内存与“主”内存同步。

我是否可以满足以下条件?

public class A {
int count;

    public synchronized int methodA() {
        return count++;
    }

   public int methodB() {
        return count++;
    }
}

methodA中的线程是否总是读取count的最新值?还是不能保证,因为methodB不同步?

1 个答案:

答案 0 :(得分:0)

线程可能会得到错误的cout ++值,因为这不是多线程编程的正确方法。

考虑这种情况,其中Thread_1和Thread_2都同时调用methodB并获得5的值,然后都将其增加,因此实际值应为7,但是现在其他线程3将由于以下原因而获得值6:错误的多威胁。