什么是Java内存模型

什么是Java内存模型

Java内存模型定义了Java虚拟机与计算机内存的工作方式。Java虚拟机是计算机的模型,这个计算机模型自然包括了内存模型,即Java内存模型。

Java内存模型描述了Java线程与内存的交互方式,它屏蔽了各种硬件和操作系统的访问差异,保证了Java程序在各平台下对内存的访问都能保持效果一致。解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。目的是保证并发编程场景中的原子性可见性有序性

Java内存模型规定了 所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传递均需要自己的工作内存和主存之间进行数据同步进行。

img

Java内存模型定义了Java线程与内存的交互方式,在Java语言层面,提供了volatile、synchronized、final等关键字来描述程序多线程行为,而Java内存模型则定义了这些关键字的行为。

Read More

什么是微服务

什么是微服务

微服务,又称微服务架构。是一种新兴的软件架构模式。微服务架构模式通过将多种细小的服务进行整合来形成软件,这些服务运行在自己独立的进程上,服务之间通过轻量级机制(常用的是HTTP API)进行通讯。

微服务架构与传统架构的区别

传统软件架构模式是一体化架构(Monolithic Architecture),一体化架构是指软件最终以一个整体的形态呈现出来,是一个单一的可执行程序,改变其中任何一个部分都需要重新生成和部署这个软件。而在微服务架构,服务就是一个运行的程序,运行在独立的进程上,如果你改变了某个服务涉及的代码,只需要重新部署这个服务即可。

微服务的优点

  • 易于扩展

Read More