自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Java并发编程

首先获取头节点的元素,然后判断头节点元素是否为空,如果为空,表示另外一个线程已经进行了一次出队操作将该节点的元素取走,如果不为空,则使用 CAS 的方式将头节点的引用设置成 null ,如果 CAS 成功,则直接返回头节点的元素,如果不成功,表示另外一个线程已经进行了一次出队操作更新了 head 节点,导致元素发生了变化,需要重新获取头节点。ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。

2024-03-05 16:00:09 673 1

原创 美团点评RPC框架pigeon实现原理及源码解析

1.介绍及使用方式Pigeon是一个分布式服务通信框架(RPC),在美团点评内部广泛使用,是美团点评最基础的底层框架之一。和阿里的Dubbo类似,在微服务的场景下,提供高性能和透明得如同本地化调用的RPC调用服务。有以下特点: 除了支持spring schema等配置方式,也支持代码annotation方式发布服务、引用远程服务,并提供原生api接口的用法。 支持netty通信...

2019-05-02 16:17:58 7349 1

原创 Redis设计与实现原理

1.数据结构与对象1.1 简单动态字符串1-1 SDS 实例SDS与C字符串的区别 C字符串 SDS 获取字符串长度的时间复杂度为o(n) 获取字符串长度的时间复杂度为o(1) API是不安全的,可能会造成缓冲区溢出 API是安全的,不会造成缓冲区溢出 修改字符串长度N次必然需要执行N次内存重分配 修改字符串长度N次最多执行N次内存重分配 只...

2019-03-25 12:12:55 426

原创 Zookeeper原理

1.基本介绍Zookeeper是一个由多个server组成的集群,分布、开源的应用程序协调服务,符合分布式服务ACP原理中的CP。它是集群的管理者,监视着集群中各个节点的状态,根据节点的反馈进行下一步合理操作。主要解决分布式应用经常遇到的数据管理问题,一些RPC框架(如点评pigeon、阿里dubbo的早期版本)使用ZK用来做服务发现和注册,点评的配置管理组件Lion用来做配置数据的获取更新,...

2019-03-12 16:37:53 433

原创 synchronized实现原理及锁升级过程

1.用法 synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。 synchronized有三种应用方式:作用于实例方法,当前实例加锁,进入同步代码前要获得当前实例的锁; 作用于静态方法,当前类加锁,进去同步代码前要获得当前类对象的锁; 作用于代码块,对括号里配置的对象加锁。2.实现原...

2019-03-11 20:04:47 7770

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除