基于ACE的线程池学习与实现(三)—— 并发编程资料

来源:互联网 发布:linux查看服务状态 编辑:程序博客网 时间:2024/06/08 01:33

ACE的线程编程

http://blog.sina.com.cn/s/blog_6f58214f0100oyip.html

一个基于ACE的负载自适应万能线程实现
http://www.cppblog.com/cppx/archive/2011/02/28/140808.html

C++实现的带最大最小线程数的线程(基于ACE)

http://blog.csdn.net/kraussyin/article/details/7023477

 

并发设计模式

1. 主动对象(Active Object)模式,主动对象是内部拥有自己的控制线程的对象。为了简化异步调用的复杂性,这个模式分离了方法的执行和调用。使用这个模式,一个对象中无论是否有独立的线程,客户从外部访问它时,感觉是一样的。

http://blog.csdn.net/haizhongyun/article/details/7592027

2. 监控者(Monitor)模式使用后,无论多少线程对一个被动对象调用,保证同时只有一个在实际执行。因为更少的上下文切换和数据传递,这个模式比主动对象效率告。但此模式较难把客户和服务线程分布在不同机器上。
3. 反应堆(Reactor)模式,当不会再发生阻塞的时候,触发多个事件处理器,分解和触发任务。在存在回调机制的被动对象时,常用这个模式代替主动对象。也常常用它来连接主动对象和下面的半同步半异步模式一起使用。
4. 半同步半异步(Half-Sync/Half-Async)模式,这个摸索用来分离同步和异步调用。这个模式常常使用活动对象来实现异步任务层。
5. 命令处理器(Command Processor)模式,这个模式和主动对象差不多。它用来分离请求的发出和执行,一个命令处理器就相当于一个调度者。然而,他没有代理者,客户直接发布命令。
6. Broker模式,这个也和主动对象类似。主要的不同是,代理者和执行者是分布边界而不是线程边界。
7. 互斥体(Mutex)模式。有时代替主动对象模式,简单的在一个主动对象上加一个锁,使其可以并发的被调用。他有多种实现方式,如重叠的锁,支持权限继承的锁。