当前位置: 首页 > 网络应用技术

并发和Java内存模型的三个主要特征

时间:2023-03-08 22:02:26 网络应用技术

  目标是最大化CPU的使用。

  并行:同时,在多个处理器上同时执行了多个指令。

  并发:这意味着只能同时执行一项指令,但是多个进程指令很快执行,因此不会同时执行多个进程的效果。将时间分为几个段落因此,可以快速实施多个过程。

  该平行是在多处理器系统中并行的,并且可以存在于单个处理器和多处理器系统中。操作,并且并发仅要求该程序同时假装执行多个操作(每小时执行一个操作,,多个操作快速切换执行)

  并发编程错误的来源:原子,可见和有序的问题。

  一个或多个操作,所有操作都执行,并且在执行过程中不会被任何因素中断,或者未执行。- 没有任何原子保护措施的急剧操作不是原子。

  如何确保原子性:

  当线程修改共享变量的值时,其他线程可以看到修改后的值。通过将新值同步回到主内存,可以通过修改变量后,通过将新值回到主内存中可见。在变量读取之前,它从主内存值刷新。对主内存的这种依赖性被用作传输介质以实现可见性的方法。

  如何确保可见性:

  也就是说,程序执行的顺序是按照代码的顺序实现的。JVM具有说明,因此存在有序的问题。

  如何确保订单:

  Java虚拟机规范定义了Java内存模型(JMM),以阻止各种硬件和操作系统的内存访问差异,以允许Java程序在各种平台下实现一致的并发效应,以调节Java Virtual Machines和Computer Memory如何工作一起:指定线程如何在其他线程之后看到共享变量的值,以及在必要时如何访问Sync中的共享变量。JMM描述一个抽象概念,一组规则。通过这组规则控制程序,使用共享数据区域和私有数据区域中的每个变量。JMM基于原子,订购和可见。

  Java内存模型和硬件内存体系结构之间存在差异。硬件内存体系结构不能区分线程堆栈和堆。对于硬件,所有线程堆栈和堆都在主内存中分布在CPU缓存和CPU中的寄存器中。

  如下图所示,Java内存模型和计算机硬件内存体系结构是交叉关联:

  关于主内存和工作内存之间的特定交互式协议,即如何将变量从主内存复制到工作内存,如何同步工作内存与主内存之间的实现,Java内存模型定义了以下八项操作完成

  Java内存模型还规定,在执行上述八个基本操作时,必须满足Hapens-Fore Forefer。