关于ActiveOjbect模式,第一次是在Robert C. Martin的《敏捷软件开发-原则、模式与实践》一书中看到的,后来找到了ActiveObject的出处:Lavender的《Active Object An Object Behavioral Pattern for Concurrent Programming》,才发现Active Object模式比我想象中的还要复杂,功能还要强大。它模拟实现了一种异步的、多线程的控制模式,为许多工业系统提供了一个简单的多任务核心。
《敏捷软件开发-原则、模式与实践》中提供的代码执行效率比较低,经常造成CPU占用率100%,将Timer对象结合进ActiveObject可以确保在必要时触发命令,而在其它时间将CPU归还系统使用,提高了运行效率。在我的机器上经测试,改造后的ActiveObject的平均CPU占用率不到2%。
文章篇幅较长,详细内容请参考这里。