@SuppressWarnings("all")
public class demo1{
static Integer c=0;
public static void main(String[] args) throws InterruptedException {
Thread a=new Thread(){
@Override
public void run() {
synchronized (c) {
for (int i = 0; i < 10000; i++) {
c++;
}
}
}
};
Thread b=new Thread(){
@Override
public void run() {
synchronized (c) {
for (int i = 0; i < 10000; i++) {
c--;
}
}
}
};
a.start();
b.start();
a.join();
b.join();
System.out.println(c);
}
}
这是上述代码,按理说a b线程开始启动后,对同一个对象c进行处理,在处理并发的情况下,我用同步代码进行同步,使线程获取c对象才执行代码,按理来说应该c值应该不变。但是测试 结果有偏差,而且很大,说明还是很并发的。 请各位大佬指点迷津。
慕瓜9220888
慕沐林林
慕盖茨4494581