用了10天时间,吧《Java多线程设计模式》看完了,并且把其课后习题都做了一遍,并且凡是编程的都编了一遍——自豪一下。
第12章,ActiveObject Pattern,简直就是个大杂烩,把前面章节的模式基本都用了一遍。
但总的来说,ActiveObject Pattern运行起来就像Swing里的EDT(Event Dispatching Thread)。
它带来的最大的好处我认为有2点:
1:减弱了comsumer的复杂性,因为只有一个comsumer了
2:可以自己对命令设计一下优先级,对命令可以优先级调度
3:使用了Command Pattern,所以可以保存命令再执行
缺点:只用一个线程在执行,如果其中一个命令很耗时,将影响其它命令的执行。
解决办法有两个,可以使用调度算法,将按照耗时来排序,再加上排的越久,优先级越高。。大致这样
第二个办法,在一个程序中,使用多个活动对象,也相当于有多个线程在执行了。。在一定程度上能够解决效率的问题。