深入解析 Folly 中 ConcurrentHashMap 和 AtomicHashMap 的底层实现原理,包括分片锁机制、无锁读取、CAS 操作、hazard pointer 内存回收等。

阅读全文 »

简介

本文将谈一谈并发队列,讲解集中可手写的并发队列的实现方式,以及介绍几种开源并发队列的实现,当然都是c++版本的。
可手撸的并发队列实现起来相对简单,面试的时候可以撸一撸,简单生产环境也可以用一用;
当然,实际生产环境中,还是建议直接用高性能的开源实现。
可手撸的版本包括,单锁队列、双锁队列、原子队列;开源并发队列包括boost中的并发队列、tbb中的并发队列、folly中的并发队列、moodycamel中的并发队列。

单锁队列实现

阅读全文 »

简介

taskflow是一个轻量级的图引擎,或者说是轻量级的tensorflow。
taskflow允许用户构建一个有向图,然后并行执行这个图,让图中相互依赖的节点串行执行,不依赖的节点并行执行。
这种方式既可视化了业务逻辑的依赖关系,又提升了整体执行的效率。
本文将先从源码的角度介绍taskflow库,然后基于taskflow开发一套企业级的策略引擎。

源码解读

阅读全文 »

简介

本文介绍一种基于protobuf实现的配置文件体系,提升配置文件使用体验,同时支持分环境加载不同配置。
本配置系统相对于json,支持配置中添加注释,方便理解;支持自动反序列化,操作简单,同时减少DOM操作不当造成的coredump。
本配置系统相对于yml等配置文件,支持自动反序列化;不会因为缩进问题造成解析失败。

使用说明

阅读全文 »