内存屏风不间接由JVM表露,相反它们被JVM插入到指令序列中以维持语言层并发原语的语义。我们研究几个简单Java法式的源代码和汇编指令。起首快速看一下Dekker算法中的内存屏风。该算法操纵volatile变量协调两个线程之间的共享资本拜候。
请不要存眷该算法的超卓细节。哪些部门是相关的?每个线程通过发信号筹算进入代码第一行的关键区域。若是线程在第三行意识到抵触(两个线程都要拜候),通 过turn变量的操做来处理。在任何时刻只要一个线程能够拜候关键区域。
0