brpc
松哥小课堂
这个作者很懒,什么都没留下…
展开
-
2021-03-18
from:https://github.com/apache/incubator-brpc/blob/master/src/bthread/remote_task_queue.hRemoteTaskQueue是一个简单的队列,使用一把锁保护确保线程安全。这个队列的功能是用来存储非worker线程创建的bthread。// Licensed to the Apache Software Foundation (ASF) under one// or more contributor license a原创 2021-03-18 21:10:45 · 111 阅读 · 0 评论 -
brpc源代码分析-定时器Timer
源代码地址:https://github.com/apache/incubator-brpc/blob/master/src/bthread/timer_thread.h阅读源代码,不仅可以了解到功能的具体实现方法,还能够学习大神们的思考和设计思路。所以在未来一段时间,通过阅读分析源代码的方式,研究brpc的实现和设计思路。本节首先从定时器开始。定时器相关文档:https://github.com/apache/incubator-brpc/blob/master/docs/cn/timer_keep原创 2021-03-18 15:45:20 · 520 阅读 · 0 评论 -
【brpc】ResourcePool详解
原地址:https://github.com/apache/incubator-brpc/blob/master/src/butil/resource_pool_inl.h说明文档:https://github.com/apache/incubator-brpc/blob/master/docs/cn/memory_management.md// Licensed to the Apache Software Foundation (ASF) under one// or more contrib原创 2021-03-16 17:07:17 · 577 阅读 · 0 评论 -
[brpc]thread local代码解读
from :https://github.com/apache/incubator-brpc/blob/master/src/butil/thread_local.cpp功能:当线程退出时,执行一些指定的操作。设计ThreadExitHelper 类用于管理函数及其参数。函数和参数使用pair管理,所以这个类维护一个pair的vector。主要功能是涉及到这个vector的增删。另外就是对象析构时,按照顺序调用vector中的函数.每个线程维护一个单独的ThreadExitHelper。原创 2020-12-23 17:40:53 · 336 阅读 · 0 评论 -
【brpc】WorkStealingQueue注释解读
注解brpc.WorkStealingQueue用来在一个线程之内存储准备被处理的任务。只有本线程可以push或者pop任务,所以这两个接口不会同时有多个线程访问。另外一个接口steal()用来让其他线程有机会从本线程偷得任务,所以steal可能和push、pop以及steal同时被调用。比较有意思的设计:队列的bottom和top支持增长,采用和(capacity-1)按为&的方式,确定实际的值。队列的长度capacity需要是2的N次方。(capacity-1)是一个各位全是1的整数原创 2020-12-11 15:56:35 · 318 阅读 · 2 评论