智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...
随笔 - 991, 文章 - 0, 评论 - 27, 阅读 - 341万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

知识框架

Posted on   Bill Yuan  阅读(1650)  评论(0编辑  收藏  举报

1、ACE并发编程:线程与同步

  • 线程与进程之区别;
  • 用户线程与内核线程;
  • 不同操作系统中的线程模型;
  • ACE线程管理:Thread_Manager;
  • ACE线程同步:ACE_Guard、ACE_Thread_Mutex等;
  • ACE Task框架:Message_Block、Message_Queue、ACE_Task。

2、ACE Reactor框架

ACE Reactor框架简化事件驱动程序的开发,而事件驱动是很多网络化应用的基本特征,这些应用常见的事件源包括I/O事件、Posix信号或 Windows句柄激发以及定时器到期等。

  • 关于ACE Reactor框架;
  • 关于事件多路分离和分派 (Event demultiplexing and dispatching );
  • Linux下 I/O事件多路分离机制:select、epoll;
  • 事件处理器 ACE_Event_Handler:
  • I/O事件(输入、输出)、信号、超时事件、异常事件的捕获和处理;
  • ACE_Timer_Queue和ACE_Time_Value:
  • 定时器的应用;
  • ACE_Reactor:ACE的反应器为ACE Reactor框架的核心,负责事件的检测、多路分离和事件处理器的分派;
  • 例程:基于ACE Reactor框架实现一个多人聊天室。

3、ACE Acceptor-Connector框架

ACE Acceptor-Connector框架实现了Acceptor-Connector模式,这种模式通过解除:1,网络化应用中相互协作的对等服务的连接和初始化所需的活动、2,以及它们一旦连接和初始化后所执行的处理的耦合,增强了软件复用和可扩展性。

  • 集成了Message_Queue的ACE_Event_handler:ACE_Svc_Handler;
  • 接受器:ACE_Acceptor;
  • 连接器:ACE_Connector;
  • 例程:基于Acceptor-Connector框架实现一个转发服务器。

4、ACE Proactor框架

Proactor框架引入异步I/O机制,既保留了Reactor框架的事件多路分离,避免多线程的开销,同时还缓和了反应式的同步I/O的瓶颈效应。

  • 关于Proactor模式和Proactor框架;
  • 关于异步I/O;
  • 异步I/O工厂类:
  • ACE_Asynch_Read_Stream和ACE_Asynch_Write_stream;
  • ACE_Handler;
  • 前摄式Acceptor-Connector;
  • 前摄器:ACE_Proactor;
  • 例程:基于Proactor框架重新实现多人聊天室。

5、ACE实用工具

  • ACE日志实用工具:ACE_Log_Msg;
  • 读写配置文件:ACE_Configuration_Heap;
  • Singleton模式 (单例模式) 的ACE实现:ACE_Singleton类模板。

6、高性能网络编程讨论

  • 考究高性能网络编程中应该遵循的原则,讨论并发、同步、事件多路分离等机制的适用场合。
  • 网络应用的瓶颈在何处?
  • 事件多路分离 vs 一连接一线程 (Event demultiplexing vs One thread per connection);
  • 同步I/O vs 异步I/O (Synchronous I/O vs Asynchronous I/O);
  • 如何适当地使用多线程?
  • 什么时候需要多个 事件多路分离线程?

7、应用层协议定义与实现

  • 为什么要自定义应用层协议?
  • 定义应用层协议 (以XMMEP协议为例);
  • 用C++实现自定义的协议 (以XMMEP协议为例)。
  • 注:XMMEP为X-Messenger Message Exchanging Protocol。
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示