合集-多线程程序设计
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Single Threaded Execution 的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 避免因多个线程同时访问一个共享数据而破坏数据的完整性。 ◆ 解决方案
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Immutable 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 多个线程在同时访问共享数据时,只需要读取数据而不必修改数据。 ◆ 解决方案 无需使用锁机制,也不
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Guarded Suspension 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 当线程访问的共享数据没有准备好时,让该线程进入等待状态,直到数据被准备好后由其
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Balking 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 当线程访问的共享数据没有准备好时,就放弃后续的操作。 ◆ 解决方案 在临界区中判断共享数据是否准备好
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Producer-Consumer 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 为了匹配数据的生产者(Producer)线程与消费者(Consumer)线程之间
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Read-Write Lock 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 当读取共享数据的线程多于更新共享数据的线程时,为了提高整体的吞吐量,并保证数据的安全
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Thread-Per-Message 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 当前线程将某个函数调用委托给其它线程去完成,自己可以继续后面的处理,而无需等待
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Worker Thread 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 控制执行任务的线程的数量,进而提高计算资源的利用率。 ◆ 解决方案 用数组或集合存放一定
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Future 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 当前线程将某个函数调用委托给其它线程去完成,自己可以继续后面的处理。仅在需要结果时才去获取被委托的函数
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Two-Phase Termination 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 保证线程接收到了终止请求后,能够尽快并安全地终止线程。 ◆ 解决方案 定
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Thread-Specific Storage 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 让每个线程拥有独立的变量实例,使该变量拥有与线程相同的生命周期。 ◆
阅读全文
摘要:本文摘要了《Java多线程设计模式》一书中提及的 Active Object 模式的适用场景,并针对书中例子(若干名称有微调)给出一份 C++ 参考实现及其 UML 逻辑图,也列出与之相关的模式。 ◆ 适用场景 多个调用方采用异步方式使用一个非线程安全且耗时较多的操作。 ◆ 解决方案 建立一个拥有独
阅读全文