epoll
self-motivation
专注LINUX系统与性能分析优化
展开
-
gRPC 7.RPC C++源码阅读 同步SERVER线程模型
如果我们使用grpc c++的同步API来实现一个server,就如官方的grpc/examples/cpp/helloworld/greeter_server.cc例子所示。 那么如果同时来到多个rpc请求的话,线程模型是如何的呢? 通过阅读代码,可知线程模型会如下图所示: grpc会使用线程池来处理所有文件描述fds上的事件,线程池中的线程分为2种,一种是专门用来处...原创 2019-05-23 23:39:23 · 1825 阅读 · 0 评论 -
理解Reactor模式: 基于线程和事件驱动
在web服务器开发中,有2种常见的架构:基于线程的架构和事件驱动的架构。 基于线程的架构 最初多线程server的实现一般都是采用每个连接一个线程的方法。这对于那些需要兼容非线程安全库的站点比较合适。 也有使用多进程模型来隔离每个请求,这样单个请求出问题不会影响到其它请求。 进程太重,上下文切换很慢而且内存消耗很大。因此,为了更好的扩展性,每个请求一个线程的方式更为常用。尽管多线程程...原创 2019-07-23 20:39:31 · 1300 阅读 · 0 评论