代码开源
建议配合代码库看,一切以代码为准:https://github.com/apache/incubator-brpc/tree/master/src/bthread
感受
bthread为brpc的核心,设计的初衷其实是在充分利用cpu的情况下保证数据的局部性,在设计过程中遇到的各种问题戈大神团队参考了多种linux内核原语进行了重写和实现,其中比较核心的设计为每taskgroup的_rq无锁队列的设计以及work stealing调度的各种逻辑实现,目的都是在尽可能少加锁的情况下实现线程调度的功能。
备注
本人当前就职于百度,内网可搜到相关wiki全部内容,鉴于brpc代码已开源故将总结wiki分享于此,希望和更多大佬有交流的机会,若文档中有任何侵权行为会即时删除,谢谢。