wpstan / wpstan.github.io

0 stars 0 forks source link

代码证明CPU指令重排序 | 庐陵才子 #11

Open wpstan opened 4 years ago

wpstan commented 4 years ago

http://www.tanrd.com/2020/03/09/reorder/

前言当相邻的两行代码没有关联的时候,CPU可能会进行指令重排序,对程序进行优化执行。代码1.以下代码中启了两个线程,线程1执行a=1,x=b,线程2执行b=1,y=a。2.a=1和x=b是不相干的两行代码,因此CPU可以对这两个指令进行重排序。同理,b=1和y=a也可以指令重排序。3.假如CPU完全按代码顺序执行,那么可能出现这么几种情况:x=0,y=1,x=1,y=0,x=1,y=1。不可能出现

wpstan commented 4 years ago

换了个评论框架,gitalk。