异步
文章平均质量分 71
self-motivation
专注LINUX系统与性能分析优化
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
libco开发教程(一) ---- 第一个测试用例
libco开发教程(一) ---- 第一个例子 libco背景 关于libco的背景,可以看我之前的文章,在c中实现协程 前一段时间一直在忙换工作的事情,因此c语言协程库的开发有一些搁浅. 最近换工作的事情告一段落了,代码实现也就提上了日程. 感兴趣的小伙伴可以跟着我的教程一步一步实践,最终实现一个功能完善能够在生产中使用的c协程库. TDD 项目以TDD测试驱动开发的方式进行编码,我们先来编写一个最简单的测试用例 test case #include "gtest/gtest.h" #include "原创 2021-09-22 15:51:36 · 541 阅读 · 0 评论 -
golang抢占实现(一)----------抢占的时机
golang抢占时机 golang 1.14版本以后开始支持抢占协程. 这里有个有趣的问题是:用户态调度的goroutine在什么时机触发抢占判断? 熟悉linux的朋友可能知道, linux可能的抢占时机有: 时钟中断处理里 系统调用返回 golang目前的实现 golang编译器在每个函数调用之前都会插入以下代码: mov %fs:0xfffffffffffffff8,%rcx //获取tls cmp 0x10(%rcx),%rsp // 判断当前协程的stack是否足够原创 2021-07-14 23:48:34 · 704 阅读 · 0 评论 -
C语言中协程(coroutine)实现
无意中发现glibc支持swapcontext, getcontext, makecontext一系列函数,这不正好可以用来实现协程吗? 直接撸了一波代码,果然不错。后面逐渐完善相关的io操作库,用它实现一个高性能的服务器. 代码地址, 喜欢的记得给个start. 后面再写篇文章详细讲述下实现原理。 ...原创 2021-06-10 23:35:33 · 2147 阅读 · 0 评论 -
8.GRPC C++源码阅读 异步服务器
更多相关文章 www.anger6.com 还是通过官方的例子来讲述: grpc/src/examples/cpp/helloworld/greeter_async_server.cc: main函数很简单 int main(int argc, char** argv) { ServerImpl server; server.Run(); return 0; } ServerImpl...原创 2019-05-25 22:44:46 · 1734 阅读 · 0 评论 -
理解Reactor模式: 基于线程和事件驱动
在web服务器开发中,有2种常见的架构:基于线程的架构和事件驱动的架构。 基于线程的架构 最初多线程server的实现一般都是采用每个连接一个线程的方法。这对于那些需要兼容非线程安全库的站点比较合适。 也有使用多进程模型来隔离每个请求,这样单个请求出问题不会影响到其它请求。 进程太重,上下文切换很慢而且内存消耗很大。因此,为了更好的扩展性,每个请求一个线程的方式更为常用。尽管多线程程...原创 2019-07-23 20:39:31 · 1415 阅读 · 0 评论
分享