servlet单实例多线程例子
例子不用太长,简短明了就行,我是个新手,如有注释最棒了,先谢谢高手大大了。求一个例子测试servlet的单实例多线程访问模式...
例子不用太长,简短明了就行,我是个新手,如有注释最棒了,先谢谢高手大大了。
求一个例子测试servlet的单实例多线程访问模式 展开
求一个例子测试servlet的单实例多线程访问模式 展开
2个回答
展开全部
在单机上,任意一个servlet都是单实例(只初始化一次),并且被多线程访问(多个客户端请求),那么它的实现原理是servlet作为工具类(或者说叫无状态类),所以核心在于无状态
package org.ggff.test;
public class Servlet {
private static Servlet instance=new Servlet();
private Servlet(){
}
public static Servlet getInstance(){
return instance;
}
public void services(){
System.out.println("do something");
}
static class Client extends Thread{
private Servlet servlet;
public Client(Servlet servlet){
this.servlet=servlet;
}
public void run(){
servlet.services();
//System.out.println("do something");
}
}
public static void main(){
Servlet servlet=Servlet.getInstance();
for(int i=0;i<10;i++){
Client client=new Client(servlet);
client.start();
}
}
}
package org.ggff.test;
public class Servlet {
private static Servlet instance=new Servlet();
private Servlet(){
}
public static Servlet getInstance(){
return instance;
}
public void services(){
System.out.println("do something");
}
static class Client extends Thread{
private Servlet servlet;
public Client(Servlet servlet){
this.servlet=servlet;
}
public void run(){
servlet.services();
//System.out.println("do something");
}
}
public static void main(){
Servlet servlet=Servlet.getInstance();
for(int i=0;i<10;i++){
Client client=new Client(servlet);
client.start();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询