memcache connect queue

在每个工作线程中,都有一个connect queue ,它其实是主线程和工作线程进行通信的中介,其里面的每个节点本质上就是对一个socket进行的封装,到主线程需要把一个任务分发给一个工作线程的时候,就会在对应的工作线程的connect queue中插入一个节点,下面我们简单下

 

一   节点结构

 

 

二 connect queue

 

三 基本的操作

 

 

1  初始化

 

2  把一个节点插入队列最后

 

3 从队列的最前面返回一个节点,并在队列中删除

 

4  新建一个节点

 

从代码中我们可以看到,主线程是维护着一个空闲的链表,当需要节点的时候,首先从空闲链表中获取,如果空闲中也没有了,那么就进行新的分配,为了提高效率,采用批量分配的方法,除了当前返回的,其他的节点形成链表,挂载到空闲链表中。

 

 

5 释放一个节点(放入自由链表中)

 

 

通过上面几个操作,主线程和工作线程通信就能实现了。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值