<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kiris_king的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kiris_king</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kiris_king]]></copyright><item><title><![CDATA[skip list]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/142423648</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/142423648</guid><author>Kiris_king</author><pubDate>Sat, 21 Sep 2024 20:59:41 +0800</pubDate><description><![CDATA[4。]]></description><category></category></item><item><title><![CDATA[murmur 算法]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/142422770</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/142422770</guid><author>Kiris_king</author><pubDate>Sat, 21 Sep 2024 19:57:36 +0800</pubDate><description><![CDATA[MurmurHash是一种高效的非加密哈希函数，适用于哈希表中的一般哈希任务。MurmurHash的名称来源于Murmur，意为一种低频的声音，体现了其设计的低碰撞率和高性能。名称来自两个基本操作，乘法（MU）和旋转（R），在其内部循环中使用。与其它流行的哈希函数相比，对于规律性较强的key，MurmurHash的随机分布特征表现更良好。MurmurHash与加密散列函数不同，它不是专门设计为难以被对手逆转，因此不适用于加密目的。]]></description><category></category></item><item><title><![CDATA[c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数？]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/136218927</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/136218927</guid><author>Kiris_king</author><pubDate>Wed, 21 Feb 2024 19:18:32 +0800</pubDate><description><![CDATA[【代码】c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数？]]></description><category></category></item><item><title><![CDATA[c语言实现hashtable]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/132305898</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/132305898</guid><author>Kiris_king</author><pubDate>Tue, 15 Aug 2023 19:47:08 +0800</pubDate><description><![CDATA[【代码】c语言实现hashtable。]]></description><category></category></item><item><title><![CDATA[c 语言实现模版模式]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/132305856</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/132305856</guid><author>Kiris_king</author><pubDate>Tue, 15 Aug 2023 19:44:43 +0800</pubDate><description><![CDATA[【代码】c 语言实现模版模式。]]></description><category></category></item><item><title><![CDATA[c语言实现策略模式]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/132305826</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/132305826</guid><author>Kiris_king</author><pubDate>Tue, 15 Aug 2023 19:42:52 +0800</pubDate><description><![CDATA[【代码】c语言实现策略模式。]]></description><category></category></item><item><title><![CDATA[模板妙用 ----- Wrapper]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131851243</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131851243</guid><author>Kiris_king</author><pubDate>Fri, 21 Jul 2023 14:52:21 +0800</pubDate><description><![CDATA[该结构体包含两个模板类型参数，Class 表示类的类型，EventFunc 表示类的成员函数指针类型，包含两个成员变量 p 和 f，用来存储类的指针和成员函数指针，operator() 实现了对成员函数的调用。该结构体包含两个模板类型参数，Class 表示类的类型，AlgorithmFunc 表示类的成员函数指针类型，包含两个成员变量 p 和 f，用来存储类的指针和成员函数指针，Run 实现了对成员函数的调用。在示例代码中，定义了一个基类 Algorithm，包含一个纯虚函数 Run，表示算法的执行函数。]]></description><category></category></item><item><title><![CDATA[GC书籍笔记]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131727900</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131727900</guid><author>Kiris_king</author><pubDate>Fri, 14 Jul 2023 17:41:44 +0800</pubDate><description><![CDATA[垃圾回收的目的是回收程序不在使用的对象所占用的空间。任何自动内存管理系统都面临三个任务：为新对象分配空间确定存活对象回收死亡对象所占用的空间。]]></description><category></category></item><item><title><![CDATA[Compare-and-Swap 和 Read-Modify-Write]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131710505</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131710505</guid><author>Kiris_king</author><pubDate>Thu, 13 Jul 2023 20:22:29 +0800</pubDate><description><![CDATA[原子的read-modify-write操作——简称RMW——要比原子的load/store更复杂。RMW允许读一块共享数据的同时还原地修改它的值。以fetch_add为例，它首先读取一个共享变量的当前值，对这个值做加法，再将新的值写回去——这3步是原子完成的。你可以用锁来完成同样的操作，但这就不是无锁的了。而RMW操作则天生就被设计为是无锁的。RMW操作可以受益于任何CPU的无锁指令，如ARMv7的ldrex/strex。]]></description><category></category></item><item><title><![CDATA[CRTP 与 mixin]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131688767</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131688767</guid><author>Kiris_king</author><pubDate>Wed, 12 Jul 2023 19:42:44 +0800</pubDate><description><![CDATA[C++中有一种很特别的模式，称为Curiously Recurring Template Pattern，缩写是CRTP。从它的名字看，前三个词都是关键字。Curiously，意思是奇特的。Recurring，说明它是递归的。Template，说明它与模板有关。最常见的CRTP形式就很符合这三个关键字：
确实挺奇特的：派生类继承自一个用派生类特化的基类，相当于自己特化了自己。这里面应用到了C++模板的一个特性：与模板参数有关的代码的编译会推迟到模板实例化时进行。最经典常见的是 enable_shared_f]]></description><category></category></item><item><title><![CDATA[mixin 实践]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131687157</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131687157</guid><author>Kiris_king</author><pubDate>Wed, 12 Jul 2023 17:43:08 +0800</pubDate><description><![CDATA[可以解决菱形继承等问题，代码如下。]]></description><category></category></item><item><title><![CDATA[mixin 思想与实践]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131686899</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131686899</guid><author>Kiris_king</author><pubDate>Wed, 12 Jul 2023 17:40:48 +0800</pubDate><description><![CDATA[一个独立的类（如Person）与一个mixin的区别在于，一个mixin只建模小的功能点（如printing或displaying），不是用来独立使用的，而是给其它需要这个功能的类做组合的。成一个新的类，像乐高一样，满足需求。如果你新增了基础类，只要它是和其它基础类正交的，就可以扩展到这个组合类里。可以用继承来做，每个概念变成一个接口，然后具体类去实现这些接口。mixin要解的问题：如何建模一系列正交概念。，它就是用来与其它类或mixin做组合的。mixin是给一组基础类，每个都建模了一个。]]></description><category></category></item><item><title><![CDATA[my sqrt]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131647020</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131647020</guid><author>Kiris_king</author><pubDate>Mon, 10 Jul 2023 20:14:15 +0800</pubDate><description><![CDATA[【代码】my sqrt。]]></description><category></category></item><item><title><![CDATA[自旋锁 spinlock]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/131252664</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/131252664</guid><author>Kiris_king</author><pubDate>Fri, 16 Jun 2023 19:29:06 +0800</pubDate><description><![CDATA[自旋锁和互斥锁都是用于保护共享资源的锁，但它们的实现方式和特点有所不同：实现方式：互斥锁采用的是阻塞等待的方式，即当一个线程请求锁时，如果锁已经被其它线程占用了，那么该线程将被阻塞等待，直到该锁被释放。而自旋锁则采用循环等待的方式，即当一个线程请求自旋锁时，如果锁已经被其它线程占用，则该线程会循环等待，直到轮到它获取锁为止。线程调度机制：互斥锁阻塞等待时，会把线程从运行队列中移除，等待解锁时再加入运行队列。而自旋锁循环等待时，线程不会被移除运行队列，而是等待占用锁的线程释放锁。]]></description><category></category></item><item><title><![CDATA[Reactor模式]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130718632</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130718632</guid><author>Kiris_king</author><pubDate>Wed, 17 May 2023 15:29:38 +0800</pubDate><description><![CDATA[常见的网络模型。]]></description><category></category></item><item><title><![CDATA[vector和unique_ptr及clear操作]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130572867</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130572867</guid><author>Kiris_king</author><pubDate>Tue, 09 May 2023 09:26:57 +0800</pubDate><description><![CDATA[【代码】vector和unique_ptr及clear操作。]]></description><category></category></item><item><title><![CDATA[libgo 流程分析(1)]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130399423</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130399423</guid><author>Kiris_king</author><pubDate>Thu, 27 Apr 2023 17:17:37 +0800</pubDate><description><![CDATA[libgo主要的功能模块主要包括：调度器( Scheduler )、处理器( Processer )、协程( Task )和一个FastSteadyClock。其中 Scheduler -> Processer -> Task 三层逻辑结构实现了对协程( Task )的生命周期管理和调度和运行。scheduler 功能Processer的功能。]]></description><category></category></item><item><title><![CDATA[ceph async_messenger 如何工作]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130284085</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130284085</guid><author>Kiris_king</author><pubDate>Fri, 21 Apr 2023 11:14:01 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[ceph async_messenger init 流程]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130283894</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130283894</guid><author>Kiris_king</author><pubDate>Fri, 21 Apr 2023 11:08:06 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Rocksdb write 时序图]]></title><link>https://blog.youkuaiyun.com/Kiris_king/article/details/130170658</link><guid>https://blog.youkuaiyun.com/Kiris_king/article/details/130170658</guid><author>Kiris_king</author><pubDate>Sat, 15 Apr 2023 15:27:04 +0800</pubDate><description><![CDATA[]]></description><category></category></item></channel></rss>