Thread-Per-message Pattern--JAVA多线程编程模式(7)
2009-03-08 11:43
501 查看
Thread-Per-message Pattern
----这个工作交给你了
上司把文件交给下属,指示:“能帮我传真这份文件吗?”。将一份工作拜托别人去做是件很平常的事情。拜托别人:“这个工作交给你了”以后,就回来继续做自己的事情。
在这个程序中,我们大体描述一下范例程序的作用,相信读者脑海里能很快浮现程序的具体实现。共有三个角色,即三个类,main类会委托Host显示文字。Host会启动一个线程,来处理这项委托的工作。启动的线程,会使用helper类实际进行显示操作。
对于这个模式,我觉得最主要是要知道它有什么益处以及在什么场合下适用。
首先,很明显,他能提升响应性,降低延迟时间。
这里的host对于client端(main类)的响应性会提高,延迟时间会下降。尤其是当handl(helper类)的操作很花时间的时候,尤其是handl的操作需要等待输出入操作(I/O)时,效果特别明显。但是不可忽视的一点是,这个模式中需要启动线程,要知道启动线程也是需要时间的,所以这是一个鱼与熊掌不可兼得的关系,看设计人怎么权衡了。
其次,这个操作适合操作顺序无所谓的时候,且不需要返回值的时候。
最后,我觉得最实用的一点是应用在服务器的制作上。为了使服务器可以处理多数请求,可以使用这个模式。客户端送达的请求,由主线程来接受。而实际处理该请求,则交给其他线程来负责,服务器的主线程继续回到等待其他客户端请求的状态。
----这个工作交给你了
上司把文件交给下属,指示:“能帮我传真这份文件吗?”。将一份工作拜托别人去做是件很平常的事情。拜托别人:“这个工作交给你了”以后,就回来继续做自己的事情。
在这个程序中,我们大体描述一下范例程序的作用,相信读者脑海里能很快浮现程序的具体实现。共有三个角色,即三个类,main类会委托Host显示文字。Host会启动一个线程,来处理这项委托的工作。启动的线程,会使用helper类实际进行显示操作。
对于这个模式,我觉得最主要是要知道它有什么益处以及在什么场合下适用。
首先,很明显,他能提升响应性,降低延迟时间。
这里的host对于client端(main类)的响应性会提高,延迟时间会下降。尤其是当handl(helper类)的操作很花时间的时候,尤其是handl的操作需要等待输出入操作(I/O)时,效果特别明显。但是不可忽视的一点是,这个模式中需要启动线程,要知道启动线程也是需要时间的,所以这是一个鱼与熊掌不可兼得的关系,看设计人怎么权衡了。
其次,这个操作适合操作顺序无所谓的时候,且不需要返回值的时候。
最后,我觉得最实用的一点是应用在服务器的制作上。为了使服务器可以处理多数请求,可以使用这个模式。客户端送达的请求,由主线程来接受。而实际处理该请求,则交给其他线程来负责,服务器的主线程继续回到等待其他客户端请求的状态。
相关文章推荐
- JAVA多线程(九)模式-Thread Per Message
- java多线程Thread-per-Message模式详解
- 多线程设计模式:第四篇 - Thread-Per-Message模式和Worker-Thread模式
- 设计模式多线程方面之Thread-Per-Message 模式
- 多线程模式(四)-Thread Per Message
- Java 多线程编程设计模式之 Thread Pool(线程池)
- [置顶] Java多线程编程模式实战指南(二):Immutable Object模式
- Java多线程编程模式实战指南一:Active Object模式(下)
- Java多线程编程环境中单例模式的实现
- Java多线程编程-单例模式几种写法的错与对
- Java多线程编程-单例模式几种写法的错与对
- 【Java并发编程】之六:Runnable和Thread实现多线程的区别(含代码)
- 【Java并发编程】之六:Runnable和Thread实现多线程的区别(含代码)
- Java多线程编程核心技术---单例模式与多线程
- 【Java并发编程】之六:Runnable和Thread实现多线程的区别(含代码)
- Java多线程编程环境中单例模式的实现
- [置顶] Java多线程编程模式实战指南(三):Two-phase Termination模式
- Java多线程编程-单例模式几种写法的错与对