多线程设计模式 -- Thread-Per-Message
2009-09-17 00:00:00 来源:WEB开发网代理执行类
Java代码
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");
}
}
执行类
Java代码
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) {
}
}
}
Java代码
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.调用方法+启动线程--->传送消息
更多精彩
赞助商链接