Java实现多线程异步处理请求:
Java实现多线程异步处理请求,即一个服务请求启动一个新线程处理请求,每个服务请求异步处理。
设计如下:
Main:程序入口,发起多个服务请求。
Server:服务请求类,接受请求,启动线程处理服务请求。
Handle:处理请求类,线程调用处理类的处理方法来处理请求。
实现如下:
Main:main类,发起多个服务请求。
Server:服务请求类,创建线程处理请求。
Handle:处理请求类
执行结果:
Java实现多线程异步处理请求,即一个服务请求启动一个新线程处理请求,每个服务请求异步处理。
设计如下:
Main:程序入口,发起多个服务请求。
Server:服务请求类,接受请求,启动线程处理服务请求。
Handle:处理请求类,线程调用处理类的处理方法来处理请求。
实现如下:
Main:main类,发起多个服务请求。
package com.thread.handle;
/**
* main类
* @author Administrator
*
*/
public class Main {
public static void main(String[] args) {
System.out.println("main start");
//发出多个服务请求处理
Server server = new Server();
server.doRequest("CCCCCCCCC");
server.doRequest("AAAAAAA");
server.doRequest("BBBBBBBBB");
server.doRequest("DDDDDDDD");
System.out.println("main end");
}
}
Server:服务请求类,创建线程处理请求。
package com.thread.handle;
/**
* 服务请求类
* 服务接受到一个请求后启动一个新的线程来处理请求
* @author Administrator
*
*/
public class Server {
/**
* 处理类
*/
Handle handle = new Handle();
public void doRequest(final String str){
/**
* 启动新线程来处理请求
*/
new Thread(){
public void run(){
//调用处理类来处理请求
handle.doHandle(str);
}
}.start();
}
}
Handle:处理请求类
package com.thread.handle;
import java.util.Random;
/**
* 请求处理类
* @author Administrator
*
*/
public class Handle {
Random random = new Random();
/**
* 处理请求
* @param str
*/
public void doHandle(String str){
System.out.println("doHandle start:"+str);
//循环输出字符串的字符
for (int i = 0; i < str.length(); i++) {
doSleep();//随机休息
System.out.print(str.charAt(i));
}
System.out.println();
System.out.println("dHandle end:"+str);
}
/**
* 线程随机休息
*/
public void doSleep(){
try {
Thread.sleep(random.nextInt(500));
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}
执行结果:
main start
doHandle start:CCCCCCCCC
doHandle start:AAAAAAA
main end
doHandle start:DDDDDDDD
doHandle start:BBBBBBBBB
CDDBAABCDABCADBDACDBAA
dHandle end:AAAAAAA
DD
dHandle end:DDDDDDDD
CBBCBCB
dHandle end:BBBBBBBBB
CC
dHandle end:CCCCCCCCC