HttpServlet单范例多线程的探讨
2、网上一直有人说实现SingleThreadModel接口就能实现单线程,由它的名字来看,确实很像,但却不是
3、实现SingleThreadModel接口只能实现多实例,servlet是无法实现单线程的(暂时没发现有什么办法实现,如有错误,欢迎交流指正)
private String time = "first";//验证单实例
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//验证多线程
System.out.println("start--" + Thread.currentThread().getId() + ": " + new Date().getTime());
try {
Thread.sleep(20000); // 为了突出并发问题,在这设置一个延时
System.out.println(" end--" + Thread.currentThread().getId() + ": " + new Date().getTime());
} catch (InterruptedException e) {
}
System.out.println(" time--" + Thread.currentThread().getId() + ": " + time);
time = "second";
}
start--36: 1290678352796
start--35: 1290678354078
end--36: 1290678372796
time--36: first
end--35: 1290678374078
time--35: first
start--35: 1290678543890
end--36: 1290678562750
time--36: first
end--35: 1290678563890
time--35: second