1 接受异步消息的主动对象
Active是“主动”的意思,Active Object是“主动对象”的意思,所谓主动对象就是指其拥有自己的独立线程,比如java.lang.Thread实例就是一个主动对象,不过Active Object Pattern不仅仅是拥有独立的线程,它还可以接受异步消息,并且能够返回处理的结果。
System.gc方法就是一个“接受异步消息的主动对象”,调用gc方法的线程和gc自身的执行线程并不是同一个线程:
2 标准Active Objects模式设计
首先从标准的Active Objects设计入手,将一个接口的方法调用转换成可接受异步消息的主动对象,也就是说方法的执行和方法的调用是在不同的线程中进行的,那么如何使得执行线程知道应该如何正确执行接口方法呢?我们需要将接口方法的参数以及具体实现封装成特定的Message告知执行线程。如果该接口方法需要返回值,则必须得设计成Future的返回形式
关于Future模式参考:多线程设计模式:Future设计模式