首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
FangZzzzz
掘友等级
throw new NoTechnologyException();
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
3
文章 3
沸点 0
赞
3
返回
|
搜索文章
最新
热门
JUC:JAVA7/8中的ConcurrentHashMap
在java7中,多线程put操作会导致循环链表。 虽然在java8中,修复了这个问题,但是还是会造成数据覆盖和扩容时的数据丢失。 HashTable容器使用synchronized来保证线程安全,效率低下。 ConcurrentHashMap是由Segment数据结构和Hash…
JUC:读写锁ReentrantReadWriteLock
之前提到的ReentrantLock是排他锁,在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。 …
JUC:可重入锁ReentrantLock
JUC:并发基础之AQS。 可重入锁,见名知意,和synchronized一样当前线程可重复获取锁。与synchronized不同的是,ReentrantLock支持更多高级功能,如可实现公平锁、非公平锁,可响应中断,以及单个锁可绑定多个条件等。 ReentrantLock实现…
JUC:并发基础之AQS
AQS是AbstractQueuedSynchronizer的简称,它是一个Java提高的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列的CAS操作来管理这个同步状态。AQS的主要作用是为Java中的并发同步组件提供统一的底层支持,例如ReentrantLo…
RocketMQ深度解析(四):Consumer
首先我们看看RocketMQ中消息消费需要关注哪些问题。 消息消费以组的模式展开,一个消费组内可以包含多个消费者(同一个JVM实例内只允许不允许存在消费组相同的消费者),消费组之间要保持统一的订阅关系,这一点很重要。 广播模式:主题下的同一条消息将被集群内的所有消费者消费一次。…
TCC-Transaction源码解读。
为了解决在事务运行过程中大颗粒度资源锁定的问题,业界提出一种新的事务模型,它是基于业务层面的事务定义。锁粒度完全由业务自己控制。它本质是一种补偿的思路。它把事务运行过程分成 Try、Confirm / Cancel 两个阶段。在每个阶段的逻辑由业务代码控制。这样就事务的锁粒度可…
RocketMQ深度解析(三):Producer
同步(sync):发送者向MQ执行发送消息API时,同步等待,直到消息服务器返回发送结果。 异步(async):发送者向MQ执行发送消息API时,指定消息发送成功后的回调函数,然后调用消息发送API后,立即返回,消息发送者线程不阻塞,直到运行结束,消息发送成功或失败的回调任务在…
RocketMQ深度解析(二):NameServer
NameServer是一个非常简单的Topic路由注册中心,其角色类似Dubbo中的zookeeper,支持Broker的动态注册与发现。主要包括两个功能:Broker管理,NameServer接受Broker集群的注册信息并且保存下来作为路由信息的基本数据。然后提供心跳检测机…
RocketMQ深度解析(一):RocketMQ总体设计
因为Topic路由信息能容忍分钟级的不一致。所有RocketMQ的NameServer集群之间互不通信,降低了NameServer的复杂程度以及对网络的要求,同时性能比zookeeper有了极大的提升。 高效的IO存储机制,消息存储文件设计成文件组的概念,组内单个文件大小固定,…
个人成就
文章被点赞
22
文章被阅读
14,315
掘力值
373
关注了
3
关注者
24
收藏集
0
关注标签
2
加入于
2019-08-19