Synchronized和Violatile的本质区别?
Synchronized和Violatile的本质区别?Synchronized本质上是JVM在字节码中加入了锁来实现线程安全。性能较差。Violatile的本质是JVM在字节码中加入了内存屏障来实现程序的有序性。而JVM在jdk1.5中,加入了happen-before原则:其中一条是:Violatile变量的写操作,一定先发生于,Violatile变量的读或者写操作。也就是保证了被Violatile修饰的变量,一旦修改了,那么他后续的针对这个变量的所有指令操作,都不会重排序,从而达到Viola
原创
2021-05-19 17:12:49 ·
659 阅读 ·
0 评论