明天要见大牛,临时抱佛脚看一下高性能IO服务器的Proactor设计模式:
ACTOR 模式: 不讲了。
PROACTOR模式:
总体来讲,这个模式就是把IO通讯的几个角色分离,各自完成自己的工作已达到最高效果。
下面讲的事UNIX上的实现:
几个角色:
1 数据处理者 仅关心数据乖乖到达自己期望的位置,以便处理。
2 数据传输者 仅负责从指定的socket上搬指定长的数据到指定位置。
3 数据分离者 探测底层硬件IO就绪,并分离到指定的数据传输者。
步骤流程:
1 数据处理者:我关注那些socket上的数据,如果可能帮我放到 A 缓冲区,长度为B, 收到后通知一下我,以便我去处理。
2 数据分离者探测到IO就绪,去通知数据传输者。
3 数据传输者从上述1 2 得知信息,搬运数据并通知数据处理者继续处理。
后续可能会继续完成这个模式的实现。