因为servlet是单实例,多线程的,就是一个类创建一个实例,但是创建多个线程来访问它,实例变量可能会被多个线程同时访问,引起线程安全问题
解决这个问题的方法通常可以把实例变量改变为局部变量
class Threadname implements Runnable{ Thread t; String name;
public void createThread(String threadname){ name=threadname; t=new Thread(this,name); } public void run() { try{ for(int i=0;i<10;i++){ System.out.println("This is "+name); Thread.sleep(1000); } }catch(InterruptedException e){ System.out .println(name+"interrupted"); } } } public class printa extends Thread{ public static void main(String arg[]){ new NewThread("One"); // start threads new NewThread("Two"); try{ Thread.sleep(1000);
}catch(InterruptedException e){ System.out .println("interrupted");
} } }
|