linux环境高级编程 第三讲线程的封装.pptVIP

  • 9
  • 0
  • 约1.35万字
  • 约 116页
  • 2017-03-15 发布于浙江
  • 举报

linux环境高级编程 第三讲线程的封装.ppt

* * * 3.24中加入了WaitForDeath将会有异常,为什么? * * 消息处理机制的封装 示例3.28存在的问题 线程收发的消息不一定来自于queue容器,还可以是管道、网络等等 消息处理的具体类CLMyMsgProcessor从CLMsgLoopManagerForSTLqueue类继承,就限制了它只能处理来自于queue容器的消息 为什么CLMessageLoopManager类所代表的继承体系,不能容纳上述变化点呢? 该继承体系包含了两种变化点 一是消息从何而来 二是消息该如何处理 消息处理机制的封装 解决方案: 两个变化点,就建立两个继承体系(代码3.30) Windows消息在Linux的重现 消息的封装 自定义消息队列的建立 消息循环机制的封装 消息处理机制的封装 switch/case语句的消除 线程创建与消息循环的结合 名字服务 管得太宽的隐患 为何睡两秒 直接进入消息循环 消息循环机制的封装 CLMyMsgProcessor的实现中,DispatchMessage函数使用了switch/case结构分发消息 ,符合面向对象吗? 当程序需要增加新的消息时,势必会在switch/case结构中添加新的case语句,这显然就破坏了代码的封闭性。 怎么样才能避免使用switch/case语句,而又能完成消息分发,且不破坏代码的封闭性呢? 示例3.31 消息

文档评论(0)

1亿VIP精品文档

相关文档