P131 muduo的头文件明确分为客户可见和客户不可见两类。以下是安装之后暴露的头文件和库文件。对于使用muduo库而言,只需要掌握5个关键类:Buffer.h、EventLoop.h、TcpClient.h、TcpServer.h、TcpConnection.h
1.Buffer.h
2.EventLoop.h
3. TcpClient.h
4.TcpServer.h
5.TcpConnection.h
TcpConnectionsPtr是一个共享指针
TcpConnection// 一个类
TcpConnection(EventLoop* loop, const string& name, int socked, const InetAddress& localAddr, const InetAddress& peerAddr);//
Q: “I/O 复用”是什么?
A:IO复用其实复用的不是IO连接,而是复用线程。
Q:Doug Schmidt提出的Reactor模式的主要思想是什么?
A:Doug Schmidt指出,其实网络编程中有很多是事务性(routine)的工作,可以提取为公用的框架或库,而用户只需要填上关键的业务逻辑代码,并将回调注册到框架中,就可以实现完整的网络服务,这正是Reactor模式的主要思想。
Reactor的意义在于将消息(IO事件)分发到用户提供的处理函数,并保持网络部分的通用代码不变,独立于用户的业务逻辑。
Q:陈硕推荐的C++多线程服务端编程模式是啥?
A:one loop per thread + thread pool
event loop 用作 non-blocking IO 和定时器
thread pool 用来做计算,具体可以是任务队列或生产者消费者队列