美文网首页
2017-12-28

2017-12-28

作者: 神秘人2 | 来源:发表于2017-12-28 14:43 被阅读0次

    synchronized和volatile

    volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的。

    volatile保证了变量的可见性,synchronized保证了原子性和可见性。

    volatile

    原理:首先我们要先意识到有这样的现象,编译器为了加快程序运行的速度,对一些变量的写操作会先在寄存器或者是CPU缓存上进行,最后才写入内存。而在这个过程,变量的新值对其他线程是不可见的,而volatile的作用就是使它修饰的变量的读写操作都必须在内存中进行。volatile告诉JVM, 它所修饰的变量不保留拷贝,直接访问主内存中的。

    相关文章

      网友评论

          本文标题:2017-12-28

          本文链接:https://www.haomeiwen.com/subject/ekcvgxtx.html