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

本文介绍了六种并发设计模式,包括主动对象、监控者、反应堆、半同步半异步、命令处理器及Broker模式。每种模式都详细阐述了其工作原理及适用场景,并对比了它们之间的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/kraussyin/article/details/7023477

 

并发设计模式

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

http://blog.youkuaiyun.com/haizhongyun/article/details/7592027

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值