代理执行类
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.调用方法+启动线程--->传送消息
分享到:
相关推荐
书中包含Java线程的介绍导读、12个重要的线程设计模式和全书总结以及丰富的附录内容。第一章相关线程设计模式的介绍,都举一反三使读者学习更有效。最后附上练习问题,让读者可以温故而知新,能快速地吸收书中的...
目录: 漫谈UML Introduction 1 Java语言的线程 Introduction 2 多线程...总结 多线程程序设计的模式语言 附录A 练习问题的解答 附录B Java的内存模型 附录C Java线程的优先级 附录D 线程相关的主要API 附录E 参考文献
- **Thread-Per-Message**:每条消息一个线程模式,为每个任务分配一个独立的线程。 - **Future**:未来模式,提供异步计算的结果。 - **Read-Write Lock**:读写锁模式,允许多个读取者同时访问,但只允许一个写入...
Singleton模式是一种常用的设计模式,用于保证一个类只有一个实例,并提供全局访问点。在多线程环境中实现Singleton时需要注意线程安全性。 一种简单的线程安全Singleton实现方法是使用双重检查锁定(double-checked...
│ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...
- **特点**: 提供了一种称为one loop per thread(每个线程一个事件循环)的多线程编程模型,简化了多线程网络服务器的开发过程。 #### 2. one loop per thread模型详解 - **概念**: 在该模型中,每个线程都有自己...
│ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...
31. **消息驱动模式\(Thread-Per-Message\)**:每个消息由一个新创建的线程来处理。 32. **未来模式\(Future\)**:提供一种方式来代表一个尚未计算的值,允许检查计算是否完成,以及获取计算结果。 33. **读写锁...
- **Thread-Per-Message(每条消息一个线程模式)**:每当有新的消息到达时,就创建一个新的线程来处理这条消息。 - **Future(未来模式)**:允许异步获取计算结果,当计算结果还未完成时,返回一个Future对象,...
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
良葛格的《Design Pattern学习笔记》不仅涵盖了经典的GOF设计模式,还额外介绍了几种多线程模式,这使得这份学习笔记成为了一个宝贵的学习资源。下面将对其中的部分设计模式进行详细介绍。 #### 二、GOF设计模式 ...
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 实现...