
brpc
文章平均质量分 60
YAFree123
这个作者很懒,什么都没留下…
展开
-
rpc:测试std::mutex 和 futex封装的FastPthreadMutex以及butex
FastPthreadMutex在是对futex的封装,在保证互斥的条件下使得线程间切换次数更少,以提高系统性能。原创 2024-04-17 13:20:51 · 851 阅读 · 0 评论 -
brpc:RemoteTaskQueue
存储非worker线程所创建的 bthreads 的队列(非worker指的是没有建立TaskGroup的线程),非worker线程会随机选择一个 TaskGroup 来推送任务,即将该Task推送至每个TaskGroup的RemoteTaskQueue队列中,由于这里的竞争较小,所以采用的是使用锁来保证线程的安全性。原创 2024-04-15 11:35:17 · 415 阅读 · 0 评论 -
brpc:WorkStealingQueue
taskflow同款的WorkStealingQueue(但是brpc提供的版本不支持动态扩容),push和pop仅可以在本线程内使用,外部线程通过steal来偷取任务。因为该队列通过实现了一个循环队列,capacity一定要是2的次方。设capacity为C,假如循环队列下标i从0开始,不断增加C在之前的定义中,必须满足其容量大小为2的倍数,而设置M = C-1例如:当C = 8时(二进制位1000),M = 7(二进制位0111)原创 2024-04-11 19:40:08 · 856 阅读 · 0 评论 -
brpc: bthread的bthread_fcontext_t
defined||defineddefineddefined||defineddefineddefineddefined&&defineddefineddefineddefineddefined所谓bthread,或者说一众fiber的本质,就是能绕过系统调用(线程切换),实现执行状态的切换(每个程序,都是一个状态机,cpu就是无情的不断执行指令的机器),而context,就是保存当前执行状态的struct,该空间是在用户态被创建,所以同线程下的context间的切换,一般不涉及系统调用。原创 2024-04-11 13:53:05 · 428 阅读 · 0 评论 -
brpc: bthread使用
使用bthread并发编程#include <gflags/gflags.h>#include <butil/logging.h>#include <bthread/bthread.h>static void* func(void* args) { std::string* num = static_cast<std::string*>(args); for(int i = 0; i < 5; i++) { LO原创 2024-04-09 19:04:42 · 458 阅读 · 0 评论 -
学习brpc:echo服务
【代码】学习brpc:echo服务。原创 2024-04-06 16:26:17 · 307 阅读 · 0 评论