java并发程序的设计模式
一、Future模式
二、master-worker模式
三、Guarded Suspeionsion模式(保护暂停)
1、核心思想:
仅当服务进程准备好时,才提供服务。
2、角色及作用
| 角色 | 作用 |
| Request | 表示客户端请求 |
| RequestQueue | 用于保存客户端请求队列 |
| ClientThread | 客户端进程 |
| ServerThread | 服务端进程 |
注意:
guarded Suspension 模式可以保证系统仅在有能力处理某个任务时,才处理该任务,当系统没有能力处理任务时,它将暂存任务信息,等待系统空闲。
四、不变模式
1、不变模式天生就是多线程友好的,它的核心思想是:
一个对象一旦被创建,则它的内部状态将永远不会发生改变。
2、使用场景主要需要满足两个条件:
1》当对象创建后,其内部状态和数据不再发生任何变化。
2》对象需要共享,被多线程频繁访问。
3》最典型的例子:java的string。
五、生产者-消费者模式
1、生产者—消费者模式的核心组件是共享内存缓冲区,它作为生产者和消费者间的通信桥梁,避免了生产者和消费者的直接通信,从而将生产者和消费者进行解耦。
2、角色及作用
| 角色 | 作用 |
| 生产者 | 用于提交用户请求,提取用户任务,并装入内存缓冲区 |
| 消费者 | 在内存缓存区中提取并处理任务 |
| 内存缓存去 | 缓存生产者提交的任务和数据,供消费者使用 |
| 任务 | 生产者向内存缓冲区提交的数据结构 |
浙公网安备 33010602011771号