一、future模式
在网上购物时,提交订单后,在收货的这段时间里无需一直在家里等候,可以先干别的事情。类推到程序设计中时,当提交请求时,期望得到答复时,如果这个答复可能很慢。传统的是一直等待到这个答复收到时再去做别的事情,但如果利用Future设计模式就无需等待答复的到来,在等待答复的过程中可以干其他事情。
future模式核心思想就是异步调用,去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑。
下面是时序图,左边是传统的单线程执行,右边使用了future模式。
我们通过synchronized结合wait()和notify()、并发包下的锁都可以实现future模式,不过JDK已经为我们提供了future模式的实现,位于java.util.concurrent并发包下。
具体使用方法可参考文章:https://www.2cto.com/kf/201411/351903.html
二、Master-Worker模式
Master-Worker 模式是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master 进程和 Worker 进程。Master 负责接收和分配任务,Worker 负责处理子任务。