Servlet中如何解决线程安全

版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/82960199

造成线程安全原因:多个线程并发访问同一份资源(只有一个Servlet对象)

方法一:让自己的Servlet类实现javax.servlet.SingleThreadModel接口,同时只能让一个线程来访问资源,若是多个资源则进入等待 (不推荐)

方法二:Servlet类中不要使用成员变量,使用局部变量!!

ex:

@WebServlet("/ThreadServlet")
public class ThreadServlet extends HttpServlet /*implements SingleThreadModel*/{
	/*
	private int num1 = 0;
	private int num2 = 0;
	*/
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		int num1 = Integer.parseInt(req.getParameter("num1"));
		int num2 = Integer.parseInt(req.getParameter("num2"));
		try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(num1+num2);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/82960199
今日推荐