java可见性、原子性、有序性在并发场景下的原理
1、Java可见性
Java可见性是指在多线程环境下,一个线程对共享变量的修改能够及时的被其他线程看到,从而保证了线程之间的正确通信。它主要是通过JVM内存模型中的happens-before原则来实现的,它规定了一个操作的执行顺序,如果一个操作happens-before另一个操作,那么第一个操作的结果将对第二个操作可见。
JVM内存模型中的happens-before原则包括以下几种情况:
2、Java原子性
Java原子性是指在多线程环境下,一个操作或者多个操作要么都执行,要么都不执行,不会出现中间状态。它主要是通过Java内存模型中的原子操作来实现的,它提供了一组指令,可以保证操作的原子性,这组指令包括:
3、Java有序性
Java有序性是指在多线程环境下,多个线程之间的操作按照某种顺序执行,从而保证程序的正确性。它主要是通过JVM内存模型中的happens-before原则来实现的,它规定了一个操作的执行顺序,如果一个操作happens-before另一个操作,那么第一个操作的结果将对第二个操作可见。
JVM内存模型中的happens-before原则包括以下几种情况:
在Java中,使用synchronized关键字可以保证有序性,它可以保证一个线程在执行某个操作时,其他线程不能执行这个操作,从而保证了线程之间的有序性。
猜您想看
-
如何部署和体验Helm
一、Helm ...
2023年05月26日 -
如何使用VMware12搭建一个CentOS-7
一、准备工作1...
2023年05月26日 -
手机声音过小怎么调节?
手机声音过小?...
2023年05月03日 -
QQ怎么开启屏幕协助?
开启屏幕协助的...
2023年05月15日 -
QQ怎么让对方看不到自己头像和昵称?
一、修改隐私设...
2023年05月15日 -
如何在服务器上安装MySQL数据库?
安装MySQL...
2023年04月15日