More than code

未分类
未分类

brpc-4 bthread

bthread 线程知识 bthread文档 bthread很关键的一点和协程的不同就是当bthread被阻塞的时候,同一个pthread下的其他bthread不会被阻塞,而是会被其他的pthread偷走运行。 bthread的启动函数 bthread中的一个task group对应了一个worker,可以看到他是从tls中取task group的,所以可以想到是一个pthread对应一个task group 如果没有task group的话,说明当前的pthread不是bthread worker。所以我们就调用…

2022年6月5日 0条评论 561点热度 0人点赞 sheep 阅读全文
未分类

brpc-3 IO(2)

IO(2) 我之前画的一个图,表示RPC的通信过程。 上一次说了server端是怎么接受请求并处理的,这一次看看客户端这边的处理。 我们在通过Stub调用RPC的时候,会调用到channel.CallMethod中 void EchoService_Stub::Echo(::google::protobuf::RpcController* controller, const ::EchoRequest* request, ::EchoResponse* response, ::google::protobuf::C…

2022年6月4日 0条评论 785点热度 0人点赞 sheep 阅读全文
未分类

brpc-2 IO

IO 文档 dispatcher在event_dispatcher.h中 当新的连接出现的时候,dispatcher就负责将fd分发给bthread epoll out在我们可以向对端写入数据的时候会触发 epoll in则是在对端有数据写入时会触发。触发一次后需要不断的读取所有数据直到EAGAIN为止。 EPOLLIN connection arrives; data is coming; The associated file is available for read operations EPOLLOUT …

2022年6月3日 0条评论 547点热度 0人点赞 sheep 阅读全文
未分类

brpc-1 ResourcePool

记录一下在读brpc的时候学习到的点 ResourcePool ResourceID来标识资源。虽然不同的类型有不同类型的ResourcID,但是内部都是一个uint64 存储数据的是Block。当线程需要内存的时候,他就会分配一个block。每个block内部的数据只会被一个线程使用 一个block就相当于是一个小的DataPool 若干个block组成一个block group。BlockGroup通过指针数组索引block LocalPool是thread local的data pool 一个比较有意思的点就…

2022年6月3日 0条评论 551点热度 0人点赞 sheep 阅读全文
未分类

mit6.824 lab4 设计思路

Raft-KV 这里写一下lab4 shardkv的思路吧,感觉如果不好好想一下设计细节的话写代码的时候就很容易乱套 目标就是完成所有的part,所以后面的选做部分也要实现(其实感觉不实现那我们的代码就太玩具了) 每个shard不能干扰其他的shard,比如一个shard正在等待数据,他是不能干扰其他shard完成正常操作的。所以我们分别维护每个shard的状态。每个shard有自己的map 去重表,可以放在shard外面也可以放在shard里面,我这里就选择放在shard里面 有一个定时向shardctrler去…

2022年2月20日 0条评论 861点热度 0人点赞 sheep 阅读全文
未分类

Daily C/C++ 新版本中C++中的易用性改进

Daily C/C++ 新版本C++中的易用性改进 参考文章 首先就是auto,自动类型推导 auto可以帮助我们推导表达式的类型,同时这是编译期发生的事,所以和我们自己写类型是一样的,不过可以帮助我们写出更加通用简洁的代码 比如这段代码 template <typename T> void foo(const T& c) { using std::begin; using std::end; for (auto it = begin(c), ite = end(c); it != ite; +…

2021年8月28日 0条评论 514点热度 0人点赞 sheep 阅读全文
未分类

链接

链接 这篇文章是在我看完CSAPP第七章后对自己的理解做的一个总结, 也算是对书中第七章的内容做一个总结吧 适合已经看完第七章但是还没有把链接搞得很清楚的人,或者可以把这篇文章看做是对程序链接的一个概括,希望我的总结可以为你们带来启发 由于本人有点懒,所以并没有打算专门的画图来讲解,如果有同学没有看懂欢迎找我来讨论 这里我们用最简单的例子来进入今天的主题,假设你要两个c文件,main.c 和 sum.c,其中main里调用sum中的一个函数,我们使用这样的方式来编译这个程序 linux> gcc -o pro…

2021年4月19日 0条评论 607点热度 0人点赞 sheep 阅读全文
1…56789
分类
  • ARTS
  • C++
  • CSAPP
  • daily
  • database
  • leetcode
  • linux
  • ml
  • nlp
  • paper
  • rocksdb
  • rust
  • ScummVM
  • tech
  • 其他
  • 周报
  • 未分类
  • 笔记
  • 算法
  • 计算机图形学
归档
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 2 月
  • 2023 年 1 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 9 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 1 月
  • 2020 年 12 月

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS