这些都是根据我最近看的《Java实战指南多线程编程(设计模式篇)》所得整理。
模式名称
Master-Salave(主仆)模式
模式解决的问题
有时候线程中的方法任务比较多,需要利用线程的优势,分解为若干个任务去处理,。
解决思路
将一个任务分解为若干个语义等同的子任务,并由专门的工作者线程来并行执行这些子任务,既提高计算效率,又实现了信息隐藏。
Master类负责原始任务的分解、子系统的派发和子任务处理结果的合并:service这是Master参与者对外暴露的接口,用于接收原始任务并返回其结果,splotWork将原始任务费解成若干个语义等同的子任务,callSlaves将各个子任务分解成若干语义等同的子任务,combineResults将各个子任务的处理结果进行整合,形成原始任务的处理结果。
Slave类负责子任务的处理:subService异步方法,负责执行子任务的处理逻辑。