硬件和操作系统的底层知识

1、cpu乱序执行:cpu在进行读等待的同时执行指令,是cpu乱序的根源,不是乱,是cpu为提高效率

指令重排 实验代码,
public static void main(String[] args) throws InterruptedException {

int i = 0;
for (;;){
i++;

x = 0; y = 0 ; a = 0 ; b = 0;
Thread one = new Thread(new Runnable() {
@Override
public void run() {
a = 1;
x = b;
}
});

Thread other = new Thread(new Runnable() {
@Override
public void run() {
b = 1;
y = a;
}
});
one.start();
other.start();
one.join();
other.join();
String result = "第" + i + "次("+ x + "," + y + ")";
if(x == 0 && y == 0){
System.err.println(result);
break;
}
}
}

2、volatile的作用

  1)保证不同线程对这个变量进行操作是的可见性,即一个线程修改了某个变量的值,这个新值对其他线程立即课件

  2)禁止进行指令重排

posted @ 2021-12-13 23:40  Pcancer  阅读(57)  评论(0)    收藏  举报