- 博客(11)
- 收藏
- 关注
原创 三、深入理解synchronized分析
1.了解java对象的存储结构在学习synchronized 之前我们需要先了解一下 java对象包含了什么?如下图所示:对象头mark word:主要用来标识对象的线程锁状态,另外可以配合GC、存放该对象的hashcodeklass word:记录用于标识对象指向方法区中class信息的指针数组长度:只有当对象是数组的时候才会有这部分对象体对象体是用于保存对象属性和值的部分对齐字节对齐跟数据在内存中的位置有关,需要字节对齐的根本原因在于CPU访问数据的效率问
2021-11-03 21:19:29 165
原创 二、并发编程的三大特性
可见性(visibility)申明的变量会放在内存中,一个线程更改之后,之前获取值的线程是对这个变量不可见的volatile 可以保证变量的可见性,引用类型(包括数组)只能保证本身的可见性,不能保证内部字段的可见性数据的读取顺序是从cpu的计算机单元寄存器->L1 -> L2 -> L3 ->内存,最终在各个阶段存储一份对于线程的可见性是值得L1,L2,L3的可见性cpu多级缓存如下图所示:缓存一致性协议 MESI Cache| 状态 | 描述
2021-10-27 22:55:53 206
原创 一、多线程基础知识
程序、进程、线程、纤程● 什么是程序○ 可执行文件,例如(QQ.EXE)● 什么是进程○ 进程是资源的分配的基本单位● 什么是线程○ 线程是调度执行的基本单位○ 多个线程共享同一个进程的资源○ 线程的切换是需要消耗资源的● 什么是协程/纤程○ 是一种最轻量化的线程(lightweight threads)。它是一种用户线程(user thread),让应用程序可以独立决定自己的线程要如何运作。操作系统内核不能看见它,也不会为它进行调度。就像一般的线程,纤程有自己的寻址空间。但是纤程采取合
2021-10-25 23:33:16 357
原创 SpringCloudGateway搭建和常见使用方法
**Spring Cloud Gateway:**提供一种简单而有效的方式来对API进行路由,并为他们提供切面,例如:安全性,监控/指标 和弹性等。温馨提示:在学习新技术之前建议先看看 官方文档1.如何在工程中引用Spring Cloud Gateway引入jar包 <dependency> <groupId>org.springframework.cloud</groupId> <art
2020-06-05 17:56:05 1386
原创 spring集成kafka,以及常见错误解决
spring集成kafka,以及常见错误解决一.配置kafka1.引入jar包<!--Kafka和spring集成的支持类库,spring和kafka通信监听--><!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-kafka --><dependency> <groupId>org.springframewo
2020-05-18 16:21:24 9348
原创 Apache sentinel 熔断、限流源码分析(入门篇)
温馨提示:在学习新技术之前建议先看看 官方文档,源码基于Apache sentinel版本1.7.2版本1.Sentinel 是什么?有什么用?Sentinel 意为哨兵,这个命名形象的诠释了 Sentinel 在分布式系统中的工作角色和重要性,主要功能就是熔断、限流、降级。随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系...
2020-03-07 22:30:37 1016
原创 基于Aop,redis,注解实现分布式锁
概述为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。为什么要使用分布式锁成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中 成员变量 A 同时都会在 JVM 分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的 不是同时发过来,三个请求分别操作三个...
2019-11-22 19:02:26 488
原创 LocalDateTime返回的格式为 2019-10-15T20:46:45,处理json返回时间中带有T的情况
因为LocalDateTime默认使用的iso 时间格式:所以返回json的时候时间会出现T /** * The ISO date-time formatter that formats or parses a date-time without * an offset, such as '2011-12-03T10:15:30'. * <p> ...
2019-08-22 16:09:02 9252 4
原创 在Docker上部署springboot jar包项目
先打包项目 --->打开maven命令 输入 clean package -Dmaven.test.skip=true 找到项目根目录下的target目录,这里面的jar就是打包好可以部署的jar包 3.准备服务器上的jar包存放目录以及Dockerfile文件 并且在本目录下创建Dockerfile文件,并且将下面这段粘贴在Dockerfile文件...
2019-07-17 17:21:40 858
原创 spring Aop+RequestContextHolder 注解实现日志打印
添加依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.0.5.RELEASE</version></dependency...
2019-04-15 21:02:14 386
原创 spring/springboot集成spring-data-elasticsearch 3.1.6。从安装到集成附spring-boot源码
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。一. ElasticSearch6.2.2下载安装步骤说明:...
2019-04-15 15:17:56 1418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人