`
xly_971223
  • 浏览: 1273673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多线程模式之 Guarded Suspension Pattern

    博客分类:
  • java
 
阅读更多
Guarded Suspension Pattern这个模式翻译过来应该叫保护性暂停模式吧
意思是:如果不停下来的话前面会有危险

这个模式有4个元素
Request   请求
RequestQueue  请求队列
ClientThread  发送请求的类
ServerThread  接收请求的类

其实有点类似生产者/消费者模式
ClientThread生产Request并放入RequestQueue
ServerThread从RequestQueue 中取数据然后处理

这个模式核心代码在 入队和出队方法上 如下
public synchronized Request getRequest(){
    while(queue.size() <= 0){ //如果队列没有数据 就一直等等等
        ...
        wait();
        ...
    }

    return queue.removeFirst();
}

public synchronized void putRequest(request){
    queue.addLast(request); 
    notifyAll(); //有数据后通知所有等待线程
}



分享到:
评论

相关推荐

    java多线程设计模式详解(PDF及源码)

    (注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中...

    java多线程设计模式 (PDF中文版, 附源码)

    目录: 漫谈UML Introduction 1 Java语言的线程 Introduction 2 多线程...总结 多线程程序设计的模式语言 附录A 练习问题的解答 附录B Java的内存模型 附录C Java线程的优先级 附录D 线程相关的主要API 附录E 参考文献

    Java多线程详解

    Java多线程模式详解 目录: 一、漫谈UML Java语言的线程 多线程的评量标准 二、 1、Single Threaded Execution ———— 能通过这座桥的,只有一个人 2、Immutable ———— 想破坏它也没办法 3、Guarded ...

    Java高并发编程详解:多线程与架构设计 (Java核心技术系列)

    如监控任务的生命周期管理、单线程执行模式、读写锁分离、不可变对象设计,以及`Future`和`Guarded Suspension`模式,这些模式在解决实际并发问题时有着广泛的应用。 书中的每一章都包含丰富的实例和详尽的解释,...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段38讲、多线程Active Objects设计模式(接受异步消息的主动对象)-上.mp4 │ 高并发编程第二阶段39讲、多线程Active Objects设计模式(接受异步消息的主动对象)-中.mp4 │ 高并发编程第二阶段40...

    aqs-并发编程笔记.pdf

    并发编程笔记中的知识点涵盖了保护性暂停模式(Guarded Suspension Design Pattern)的定义、实现与分析,以及在Java中如何通过GuardedObject对象来实现多线程间的结果传递和超时处理。以下是详细的知识点梳理: 1....

    20.9.24aqs-并发编程笔记.pdf

    保护性暂停模式(Guarded Suspension Design Pattern)是一种在多线程环境下实现线程之间安全地传递信息的模式。这种模式主要解决了在并发编程中如何安全高效地进行线程间通信和数据传递的问题。 该模式的基本概念...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段38讲、多线程Active Objects设计模式(接受异步消息的主动对象)-上.mp4 │ 高并发编程第二阶段39讲、多线程Active Objects设计模式(接受异步消息的主动对象)-中.mp4 │ 高并发编程第二阶段40...

    一种同步语言多线程代码自动生成工具.pdf

    《一种同步语言多线程代码自动生成工具》这篇文章主要探讨了一种新的技术,该技术能够自动为同步语言生成多线程代码,以适应现代安全关键系统对于计算性能的需求。随着多核处理器在安全关键领域的广泛应用,如何有效...

    aqs-并发编程(2)笔记.pdf

    在并发编程中,保护性暂停模式(Guarded Suspension Design Pattern)是一种常用的同步机制,用于线程间的协作。该模式允许一个线程等待另一个线程的特定操作完成,然后继续执行。在该模式中,线程间共享的某个对象...

    设计模式笔记

    - **Guarded Suspension(受保护的暂停模式)**:当一个线程调用另一个线程的同步方法时,如果该同步方法没有准备好,则该线程将阻塞,直到该同步方法准备好为止。 - **Producer Consumer(生产者消费者模式)**:...

    java线程安全总结.pdf

    8. **Guarded Suspension 模式**:这是一种设计模式,通常使用`wait()`和`notify()`方法来协调线程间的执行顺序,确保特定条件满足时线程才能继续执行。 9. **Double-Check Locking(双重检查锁定)**:这是一种...

    concurrent.rar

    8. **并发编程模式**:如生产者-消费者模式、读写锁模式、双检锁(DCL)模式、工兵(Guarded Suspension)模式等,这些模式在并发编程中有着广泛的应用。 9. **并发异常处理**:在并发编程中,死锁、活锁、饥饿等是...

    java并发编程经典书籍(英文版)

    - **并发模式**:介绍了如Producer-Consumer、Builder、Guarded Suspension等经典并发模式,并提供了Java实现。 - **并发集合**:详述了JUC(Java Util Concurrency)库,包括ArrayList、LinkedList、HashMap等...

    cs_libguarded:用于多线程编程的仅标头库

    在这个例子中,`guarded&lt;SharedData&gt;` 保护了 `SharedData` 对象,使得 `increment` 方法的调用在多线程环境下是安全的。 ### 性能考量 尽管线程安全是重要的,但过度的同步可能导致性能损失。`cs_libguarded` 在...

    laravel中的fillable和guarded属性详解

    在创建和更新模型时,`fillable` 和 `guarded` 属性是两个非常重要的概念,它们控制着如何通过 `create` 和 `update` 方法批量赋值模型属性。 首先,我们来看 `fillable` 属性。`fillable` 被称为白名单,它定义了...

    高性能java系统实现与调优

    - **Guarded Suspension**:在没有足够的资源时暂停执行,避免资源浪费。 - **不变模式**:通过不可变对象减少锁的竞争。 - **生产者-消费者**:通过共享缓冲区协调多个线程的工作。 - **JDK并发框架与优化**: ...

Global site tag (gtag.js) - Google Analytics