类、类与类之间的关系(继承、组合、委托)
可调用对象:函数指针、仿函数、lambda表达式
std::function类模板(又称“可调用对象绑定器”,可与std::bind()绑定器结合使用):可绑定(非重载的)普通函数、(静态/普通)成员函数/成员变量、std::bind()的返回结果、绑定不同版本的重载()运算符(即仿函数)、绑定lambda表达式
c++11新标准
指针、智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr
资源管理方案RAII:主要体现了对象的析构不再由编译器或操作系统来管理,而是在对象超出作用域后用类的析构函数进行释放。
lock_guard、shared_lock/unique_lock、shared_ptr/unique_ptr/weak_ptr,均体现该设计思想。
引用计数
C++的多态
模板编程:主要分为“泛型编程”和“元编程”。
RAII
的局部对象管理资源,包括智能指针(unique_ptr、shared_ptr、weak_ptr等)、利用栈特性自动释放锁(lock_guard、unique_lock、shared_lock、scope_lock等)。通过C++11重构了Muduo库中核心的Multi-Reactor架构部分,这部分已经足够支撑起一个基本的高并发TCP服务器的运行了。
本文围绕连接建立、消息读取、消息发送、连接断开这几条主线来进行梳理,同时会讲到Muduo库中涉及到的线程控制、线程通信的机制。
集群聊天服务器的设计和业务逻辑实现、调试、分析。
muduo
网络库作为项目的网络核心模块,提供高并发的网络IO服务;本项目通过Muduo网络库和Protobuf传输协议、zookeeper服务协调中心,实现了分布式系统中的MPrpc远程调用框架,使用者可以通过简单的定义callee和caller中的方法、bin/test.conf配置文件中zookeeper的host地址和rpcserver的host地址,来实现服务的发布和远程调用。同时,通过异步日志缓冲队列,可实现MPrpc框架在使用过程中的日志记录。
本文的要点内容和技术栈:
ps -ef
以全格式显示当前所有进程、终止进程kill 和 killall、查看进程树pstreelogrotate
配置文件、日志轮替机制、查看内存日志。Linux0.01
内核源码结构dump
完成备份、使用restore恢复备份2MSL
的意义?、端口复用、TCP连接和释放的过程。IO
模型:阻塞BIO
、非阻塞NIO
、IO
多路复用IO Multiplexing
、信号驱动signal-driven
、异步asynchronous
。/var/lib/mysql/
snapshot read
)、当前读(current read
)、*如何通过MVCC实现已提交读和可重复读?