但是中间有一个小的顾虑,如果有A,B,C同时调用前置机提供的服务,比如前置机中需要10S来处理当前的请求信息,那么是否会出现串行执行的情况,也就是最后一个排队的C会等待30S的时间才能够得到所需要的结果,当然,容器或者框架肯定会处理这么低级的问题,保险起见,我们还是验证一下如下:
建立一个WebService,其相关的实现类为:
public class ProvinceCardServiceImpl implements ProvinceCardService {
public String getMsg(String str) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello "+str;
}
}
本地java客户端调用程序如下:
public class ProvinceCardClient implements Runnable {
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
PcServicePortType service = new PcService().getPcServiceHttpPort();
System.out.println(service.getMsg("Andy"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(System.currentTimeMillis())));
}
public static void main(String[] args) {
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
new Thread(new ProvinceCardClient()).start();
}
}
下面是程序的一种可能结果:
2013-04-24 09:43:14
2013-04-24 09:43:14
2013-04-24 09:43:14
Hello Andy
Hello Andy
2013-04-24 09:43:25
2013-04-24 09:43:25
Hello Andy
2013-04-24 09:43:25