我已阅读以下文章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不同步?
答案 0 :(得分:0)
线程可能会得到错误的cout ++值,因为这不是多线程编程的正确方法。
考虑这种情况,其中Thread_1和Thread_2都同时调用methodB并获得5的值,然后都将其增加,因此实际值应为7,但是现在其他线程3将由于以下原因而获得值6:错误的多威胁。