Java
文章平均质量分 73
发灰梦
天生我材必有用,发量见底愁成空。
展开
-
SpringCloud之Eureka服务
SpringCloud组件之EurekaEureka概念Eureka就好比是滴滴,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉 Eureka,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eureka之间通过 “心跳” 机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服 务列表中剔除。这就实现了服务的自动注册、发现、状态监控。Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址。提供者:启动后向Eureka原创 2021-01-31 19:46:37 · 288 阅读 · 0 评论 -
SpringCloud——微服务简介
SpringCloud——微服务简介微服务概念使用一套小服务来开发单个应用的方式或途径每个服务基于单一业务能力构建,运行在自己的进程中服务间相互独立,互不干扰服务之间使用轻量级通信机制,通常是HTTP API这些服务可以使用不同的编程语言、数据存储技术实现SpringCloud简介微服务是一种架构设计的概念,而SpringCloud则是它的具体实现。Spring Cloud是Spring旗下的项目之一,官网地址:http://projects.spring.io/spring-clo原创 2021-01-31 19:45:03 · 140 阅读 · 0 评论 -
Java——乐观锁和悲观锁
这里写目录标题乐观锁CAS悲观锁synchronizedLock当一个数据被多个线程所共同使用,且线程并发执行时,我们需要保证保证该数据的准确性,既一个线程对数据的操作不会对另一个线程产生不合理的影响。实现的手段基本上是对数据加锁,当线程要对数据进行操作时必须获得锁后再进行操作。锁大致可分为乐观锁和悲观锁。乐观锁乐观锁,在拿到数据后,不会立即进行数据锁定,只有等到数据需要更新时,才会判断数据是否和拿到时一致。CAS悲观锁悲观锁,为了防止自己拿到数据后别人会来修改,你就把数据加上锁,直到自己处理原创 2020-10-13 16:34:01 · 8652 阅读 · 7 评论 -
Java虚拟机——锁优化之自旋锁、锁消除、锁粗化、轻量级锁、偏向锁
目录自旋锁和自适应自旋锁消除锁粗化轻量级锁偏向锁偏向锁、轻量级锁的状态转化及对象Mark Word的关系从JDK5升级到JDK6后,HotSpot虚拟机开发团队在这个版本上花费了大量的资源去实现各种锁优化技术,如自适应自旋锁、锁消除、锁粗化、轻量级锁、偏向锁等,这些技术都是为了在线程之间更高效地共享数据及解决竞争问题,从而提高程序的执行效率。自旋锁和自适应自旋互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给Java虚拟机的并发性带来了很大的压力。同时,在原创 2020-11-20 12:57:24 · 224 阅读 · 2 评论 -
Java-运行时内存和对象的访问定位
目录概述Java运行时内存虚拟机栈本地方法栈native方法堆程序计数器方法区概述Java将内存的管理全部交给了虚拟机,这就意味着对于一个Java程序员来说,不需要手动的去获取和释放内存,不需要为每一个创建对象new操作去分配内存,也不用像C++一样用delete释放不用对象的内存,全部都由虚拟机管理,不容易出现内存泄漏和内存溢出的问题。不过也正因为如此,一旦出现了内存泄漏和内存溢出等问题,如果不了解虚拟机是怎么使用内存的,就难以找到问题发生的根源,排查问题就很艰难。Java运行时内存虚拟机栈原创 2020-10-29 22:16:25 · 155 阅读 · 1 评论 -
Java并发编程之内存模型与volatile关键字
目录一、Java内存模型Java内存模型与JVM内存模型(Java运行内存)内存间交互操作二、volatile关键字可见性有序性总结一、Java内存模型Java内存模型是为了屏蔽不同硬件和操作系统间的内存访问差异,以实现Java在不同平台下都能有一致的内存访问效果。Java内存模型主要定义了程序中各种变量的访问规则,既关注虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节。(此处的变量只包括线程间共享的变量:实例字段、静态字段和构成数组对象的元素)Java内存模型规定了所有的变量都存储在主原创 2020-10-22 23:46:22 · 134 阅读 · 0 评论