
杂记
Mr.Rosin
学海无涯,学他丫的
展开
-
一个用于控制对象个数的基类
读到《More Effective C++》中的“计算对象个数的Base Class”一节时,感觉书中讲的例子很有特点,故在此记录下来,顺便按照个人的一点想法稍微改善一下。先讲需求,这里要设计一个可以控制某个类型所存在对象个数的基类,使得继承这个基类的类型可以极简地控制其某一时刻实例化的对象个数。《More Effective C++》书中对于这个基类的实现源码如下:template<...原创 2019-01-03 16:06:25 · 185 阅读 · 0 评论 -
模板偏特化和默认模板参数的匹配顺序
在阅读Boost.ASIO的时候看到了下面这种写法:template <typename CompletionToken, typename Signature = void>class async_result{public://... typedef CompletionToken completion_handler_type; async_result&原创 2019-01-10 17:35:40 · 1786 阅读 · 1 评论 -
一个完全解耦的对象池模型
先说想法我想尝试写一种对象池模型,使得所有经有new得到的对象实际上都会从一个链表中取,并在delete的时候把资源返回给链表。完整源码我写了一个demo来实现我的思路,思路不复杂,但想尽量写的精致。也希望有想法的看官能提点建议。源码见:https://github.com/HandsomeRosin/ObjectPool顺便在这里说明下,目前demo没实现new[]和delete[]的...原创 2019-05-29 17:17:55 · 309 阅读 · 0 评论 -
无锁队列、自旋锁队列、互斥锁队列性能对比测试
介绍无锁队列先大致介绍一下无锁队列。无锁队列的根本是CAS函数——CompareAndSwap,即比较并交换,函数功能可以用C++函数来说明:int compare_and_swap (int* reg, int oldval, int newval){ int old_reg_val = *reg; if (old_reg_val == oldval) *reg = n...原创 2019-07-31 12:43:01 · 2632 阅读 · 5 评论 -
Amazon Aurora(SIGMOD 2018)云数据库关键技术解读
说在前面本文主要介绍 《Amazon Aurora: On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes 》(SIGMOD 2018)这篇论文,这篇论文主要是关于Amazon Aurora分布式数据库中一些关键技术的实现思路。若想直到更多关于Aurora基础架构的,可参考 《Amazon Aur...原创 2019-09-26 22:59:28 · 2277 阅读 · 0 评论