设计模式多线程方面之Thread-Per-Message 模式
2013-07-15 14:03
239 查看
Thread-Per-Message模式是一个很简单但很常应用的模式,尤其是在GUI程式中,我们举个例子,当您设计一个文件编辑器时,您可能像这样注册一个开启档案的事件处理:
menuOpenFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
openFile();
}
}
);
openFile()方法中主要是开启档案、一行一行读档案文字并设定文字至文字区域中,这样设计基本上没有什么问题,例如果您的文件内容很长,在读档必须花费一些时间时,您会发现在档案读取完毕前,您的视窗会有明显的停顿现象。
menuOpenFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable(){
public void run() {
openFile();
}
}).start();
}
}
);
在事件发生之后,您将档案处理的动作交由一个执行绪去执行,而事件处理执行绪直接回到回应事件的状态,如此即可解决视窗在载入档案时的停顿。(执行绪好像是TW的翻译,内地应该是线程Thread)
简单的说,Thread-Per-Message模式是在某个请求发生时,新增一个执行绪来执行该请求,而主执行绪继续往下执行,除了上面的载入档案例子 之外,像是进行搜寻、字串转换之类需要一些时间来执行的工作时,使用Thread-Per-Message模式都可以提高主执行绪(界面)的回应性。
转自:
http://www.riabook.cn/doc/designpattern/ThreadPerMessage.htm http://openhome.cc/Gossip/DesignPattern/ThreadPerMessage.htm
详细:http://blog.csdn.net/gaomatrix/article/details/7003798
menuOpenFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
openFile();
}
}
);
openFile()方法中主要是开启档案、一行一行读档案文字并设定文字至文字区域中,这样设计基本上没有什么问题,例如果您的文件内容很长,在读档必须花费一些时间时,您会发现在档案读取完毕前,您的视窗会有明显的停顿现象。
menuOpenFile.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable(){
public void run() {
openFile();
}
}).start();
}
}
);
在事件发生之后,您将档案处理的动作交由一个执行绪去执行,而事件处理执行绪直接回到回应事件的状态,如此即可解决视窗在载入档案时的停顿。(执行绪好像是TW的翻译,内地应该是线程Thread)
简单的说,Thread-Per-Message模式是在某个请求发生时,新增一个执行绪来执行该请求,而主执行绪继续往下执行,除了上面的载入档案例子 之外,像是进行搜寻、字串转换之类需要一些时间来执行的工作时,使用Thread-Per-Message模式都可以提高主执行绪(界面)的回应性。
转自:
http://www.riabook.cn/doc/designpattern/ThreadPerMessage.htm http://openhome.cc/Gossip/DesignPattern/ThreadPerMessage.htm
详细:http://blog.csdn.net/gaomatrix/article/details/7003798
相关文章推荐
- 多线程设计模式:第四篇 - Thread-Per-Message模式和Worker-Thread模式
- java多线程Thread-per-Message模式详解
- JAVA多线程(九)模式-Thread Per Message
- 多线程模式(四)-Thread Per Message
- Thread-Per-message Pattern--JAVA多线程编程模式(7)
- 多线程设计模式——Thread Confinement(串行线程封闭)模式
- Thread-Per-Message 模式
- Thread-Per-Message 模式
- Thread-Per-Message模式
- Java多线程Thread-并发协作(生产者消费者设计模式)
- Java 多线程编程设计模式之 Thread Pool(线程池)
- 多线程程序设计学习(8)Thread-Per-Message
- Java多线程设计模式-学习笔记-Thread Per Message模式.
- 基础 多线程 Thread synchronize 单例设计模式 死锁
- 别人的Morgan Stanley面试,注重基础,java core、多线程、设计模式、设计程序。。。
- 理解多线程设计模式
- 多线程设计模式之——Producer-Consumer Pattern
- 黑马程序员--Java学习日记之总结复习(多线程和设计模式)
- 设计模式:JDK静态代理之Thread/Runnable
- 标准Singleton设计模式,多线程下