Servlet中使用多线程的wait()方法后,第二个线程无法进入
public class GetMessageServlet extends HttpServlet {
private static String abc = "123";
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("进入");//第二个请求无法输出
synchronized (abc) {
try {
abc.wait(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
所有请求全部使用同一个同步监视器abc,但是每个线程进入后都会执行abc.wait()并释放锁,为什么我只能第一个请求进入输出“进入”,第二个请求连“进入”都没有输出呢?,当第一个线程5秒超时后,第二个线程才输出“进入”,难道servlet中的多线程有什么不同?
不使用servlet,普通情况下第二个线程是可以进入的,我主要是想做消息推送中,多个接收消息端,可是从第二个接收端开始线程根本就进不去了
...全文


