一、引子 前面介绍了SystemSlot(系统规则检查)和AuthoritySlot(授权规则检查),下面接着分析FlowSlot。 FlowSlot 会根据预设的规则,结合...
所谓状态,就是在某个时间点上一个标识所代表的值。 Clojure 的引用模型把标识和值清晰地区分开来。在 Clojure 中,几乎所有的东西都是值。为了加以标识,Clojur...
函数式编程的理念 函数式编程使得代码的编写、阅读、测试和重用都更容易了。 纯函数 函数式程序构建于纯函数之上。纯函数没有副作用,也就是说,它不依赖于除参数以外的其他任何东西。...
最近简单学习下Clojure,网上的资料也不是很多,自己写个小教程。 在Clojure中,很多数据结构都可以通过同一个抽象概念来访问:序列(Seq)。 可被视为序列的容器,被...
本部分介绍Java 8 中提供的具备异步回调能力的工具类——CompletableFuture,该类实现了Future接口,还具备函数式编程能力。 CompletableFu...
异步回调模式是高并发下的核心模式,本部分对异步回调进行详细介绍。 泡茶案例 本部分从一个很好理解的异步生活示例-泡茶开始。为了异步执行泡茶流程,分别涉及三个线程:泡茶线程(主...
本部分介绍几种在高并发场景中常用的设计模式:线程安全的单例模式、ForkJoin模式、生产者——消费者模式、Master-Worker模式和Future模式。 线程安全的单例...
Java 中的容器类主要有 List、Set、Queue和Map,但他们的基础实现比如 ArrayList、HashMap 是线程不安全的。Java内置锁提供了一套线程安全的...
500lines or less 是我很早就开始学习的一个项目,很早之前也把其中的文档进行了翻译,现在断断续续的也把其中的项目大部分都自行实现了一下,代码放到了 github...
IP地址是标识互联网或本地网络上的设备的唯一地址。IP代表“互联网协议(Internet Protocol)”,它是一组规则,用于管理通过互联网或本地网络发送的数据格式。 本...
什么是系统设计 在开始本课程之前,让我们讨论一下什么是系统设计。 系统设计是为满足特定需求的系统定义架构、接口和数据的过程。系统设计通过清晰高效的系统满足你的业务或组织需求。...
是的,~~
多谢提醒,已修改。
Netty 实现 protobufProtobuf是Google protocol buffer的简称,是一种语言中立、平台无关、易于扩展的结构化数据序列化技术,可用于数据传输、存储等领域。 与Protofu...
客户端: ch.pipeline().addLast(new ProtobufDecoder(
SubscribeReqProto.SubscribeReq.getDefaultInstance()
));
这段是不是写错了, 应该是SubscribeRespProto
基于 CAS自旋实现的轻量级锁在恶性自旋时会消费大量的CPU资源。解决这个问题有2种方案:分散操作热点和使用队列削峰。JUC并发包使用的是队列削峰的方案解决CAS性能问题,并...
前面孩子生病了,一直照顾孩子。然后自己又感冒了,嗓子难受的要死。今天终于好多了。 显式锁介绍 JDK5 引入了 Lock 接口,与内置加锁机制不同的是,Lock 提供了一种无...
本部分介绍Java是如何利用JMM解决并发中的有序性问题的。 由于CPU技术的发展,CPU会优化待执行的指令序列,使指令执行顺序和代码顺序略有不同,可能会导致代码执行出现有序...
本部分介绍 MESI 协议是如何解决并发中的可见性问题的,内容与Java关联有限,主要是一些计算机组成原理的知识,但和我们的主题高并发关联比较大,还是需要了解的。 为了缓解内...
转眼就8月份了,要开始努力了~~~ 在争用激烈的场景下,会导致大量的CAS空自旋。这会浪费大量的CPU资源,大大降低了程序的性能。 这时候可以通过使用 LongAdder 代...