多线程设计模式类别概括
- 不可变对象模式(Immutable Object)
线程安全性指的是多个线程对共享资源同时进行访问时,防止数据发生未定义的变化。
所谓的不可变对象就是没有机会去修改它,每一次修改都会产生一个新的对象。
- 保护性暂挂模式(Guarded Suspension)
核心思想是仅当服务进程准备好时,才提供服务。
该模式主要成员有:Request、RequestQueue、ClientThread、ServerThread。
- Request:表示客户端请求
- RequestQueue:用于保存客户端请求队列
- ClientThread:客户端进程
- ServerThread:服务器进程
适用场景:一项任务被分解为多个不同的部分,每个线程完成不同的部分,这些线程相互协作时,会出现一个线程等待另一个线程一定操作后才能进行的场景。
- 两阶段终止模式(Two-phase Termination)
- 承诺模式(Promise)
- 生产者-消费者模式(Producer-Consumer)
- 主动对象模式(Active Object)
- 线程池模式(Thread Poll)
- 线程特有存储(Thread Specific Storage)
- 串行线程封闭模式(Serial Thread Confinement)
- 主仆模式(Master-Slave)
- 流水线模式(Pipeline)
- 半同步/半异步模式(Half-sync/Half-async)