网站设计公司排行,江苏营销型网站公司,app网站平台建设方案,龙岗网站制作新闻并发编程的三大特性实际是JVM规范要求的JVM实现必须保证的三大特性
不同的硬件和不同的操作系统在内存管理上有一定的差异#xff0c;JAVA为了解决这种差异#xff0c;使用JMM#xff08;Java Memry Model#xff09;来屏蔽各个操作系统之间的差异#xff0c;使得java可以…并发编程的三大特性实际是JVM规范要求的JVM实现必须保证的三大特性
不同的硬件和不同的操作系统在内存管理上有一定的差异JAVA为了解决这种差异使用JMMJava Memry Model来屏蔽各个操作系统之间的差异使得java可以实现跨平台操作
一、原子性并发编程的原子性
1、什么是原子性操作不可分割
2、JMM与原子性之间的关系JMM规定在java中所有变量都是从主内存虚拟机内存中复制一份到线程内存CUP内存在线程内存中做计算再写回到主内存中写回的操作不一定能立即执行这就导致了在多线程并发的情况下线程内存cup内存中读到的变量值不一定是最新的变量值有可能被修改过比如下面代码
private static int count 0;public static void main(String[] args) {Thread t1 new Thread(() - {for (int i 0; i 100; i) {try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}add();}});Thread t2 new Thread(() - {for (int i 0; i 100; i) {try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}add();}});t1.start();t2.start();try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println(count);}public static void add() {count;}
3、java中如何解决原子性问题保证在并发情况下的数据正确性 二、可见性
三、有序性