`
pan_java
  • 浏览: 287895 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多线程设计模式 -- Thread-Per-Message

阅读更多
代理执行类
public class Host {
    private final Helper helper = new Helper();
    public void request(final int count, final char c) {
        System.out.println("    request(" + count + ", " + c + ") BEGIN");
     //让执行任务起动一个新线程去执行,不等待方法返回   
     new Thread() {
            public void run() {
                helper.handle(count, c);
            }
        }.start();
        System.out.println("    request(" + count + ", " + c + ") END");
    }
}



执行类
public class Helper {
    public void handle(int count, char c) {
        System.out.println("        handle(" + count + ", " + c + ") BEGIN");
        for (int i = 0; i < count; i++) {
            slowly();
            System.out.print(c);
        }
        System.out.println("");
        System.out.println("        handle(" + count + ", " + c + ") END");
    }
    private void slowly() {
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
        }
    }
}


public class Main {
    public static void main(String[] args) {
        System.out.println("main BEGIN");
        Host host = new Host();
        host.request(10, 'A');
        host.request(20, 'B');
        host.request(30, 'C');
        System.out.println("main END");
    }
}


利用这个模式主线程不会等待执行任务的返回,就立即返回.
对于网络分布式系统中不需要返回结果的IO流效率有很大的提高.还有一些比较耗时的方法也很有帮助.经典!

适合环境:
1.提升响应性,降低延迟时间
2.适合在操作顺序无所谓时使用
3.不需要返回值的时候
4.应用在服务器的制作
5.调用方法+启动线程--->传送消息
0
0
分享到:
评论

相关推荐

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

    书中包含Java线程的介绍导读、12个重要的线程设计模式和全书总结以及丰富的附录内容。第一章相关线程设计模式的介绍,都举一反三使读者学习更有效。最后附上练习问题,让读者可以温故而知新,能快速地吸收书中的...

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

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

    设计模式.pdf_学习模式必备

    - **Thread-Per-Message**:每条消息一个线程模式,为每个任务分配一个独立的线程。 - **Future**:未来模式,提供异步计算的结果。 - **Read-Write Lock**:读写锁模式,允许多个读取者同时访问,但只允许一个写入...

    多线程服务器的几种常用模型

    Singleton模式是一种常用的设计模式,用于保证一个类只有一个实例,并提供全局访问点。在多线程环境中实现Singleton时需要注意线程安全性。 一种简单的线程安全Singleton实现方法是使用双重检查锁定(double-checked...

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

    │ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...

    Linux 多线程服务端编程 使用muduo C++ 网络库

    - **特点**: 提供了一种称为one loop per thread(每个线程一个事件循环)的多线程编程模型,简化了多线程网络服务器的开发过程。 #### 2. one loop per thread模型详解 - **概念**: 在该模型中,每个线程都有自己...

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

    │ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...

    36种最新设计模式整理

    31. **消息驱动模式\(Thread-Per-Message\)**:每个消息由一个新创建的线程来处理。 32. **未来模式\(Future\)**:提供一种方式来代表一个尚未计算的值,允许检查计算是否完成,以及获取计算结果。 33. **读写锁...

    设计模式笔记

    - **Thread-Per-Message(每条消息一个线程模式)**:每当有新的消息到达时,就创建一个新的线程来处理这条消息。 - **Future(未来模式)**:允许异步获取计算结果,当计算结果还未完成时,返回一个Future对象,...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    良葛格DesignPattern学习笔记

    良葛格的《Design Pattern学习笔记》不仅涵盖了经典的GOF设计模式,还额外介绍了几种多线程模式,这使得这份学习笔记成为了一个宝贵的学习资源。下面将对其中的部分设计模式进行详细介绍。 #### 二、GOF设计模式 ...

    Dialogic从入门到系统工程师_完整版

    6.2 使用多线程 133 6.2.1 建立一个工作者线程(Worker Thread) 134 6.2.2 修改主函数 134 6.2.3 编译并运行 135 6.2.4 提出问题 136 6.3 使用异步模式 137 6.3.1 使用Dialogic事件通知机制 138 6.3.2 实现...

Global site tag (gtag.js) - Google Analytics