多线程编程, 去子解一下吧, 加上SYNCHRONIZED这样的关键字

解决方案 »

  1.   

    你是说加上同步锁吧?
    那要在3个SERVLET上都加?
    加到doPost()上?
      

  2.   

    在web下应该不会出现这种问题啊,按你说在多用户访问的情况下你那就变为仅有一个用户能访问了,就算是dispath,那也是一次新的请求啊,并不会影响多用户访问
      

  3.   

    做成这个样子是因为:以前的需要是3个AJAX,每个servlet完成后,向页面返回消息(表示这个工作已经做完,相当于此时执行的进度一样)。现在又根据需要不能在每个servlet执行完后,就返回页面,因为可能某个servlet会执行一段时间(例如数据导出等),这时,如果用户换到其他页面或关闭浏览器后,就会出错,因为前两个servlet返回后都需要客户端发出另一个AJAX请求,那样的话就不能保证执行的完整性。所以现在我想不进行大的代码改动,就直接在每个servlet执行完后,就在内部进行forward。
      

  4.   

    对了,3个servlet都有成员变量,但没次请求都会在doPost()中重新赋值
      

  5.   

    servlet定义全局静态静态常量还可以,你如果按照下面的方式写就肯定会出错
    public class MyServlet extends HttpServlet{public int count;
    public String name = null;}是这样写的吗??
      

  6.   

    怎么会停止执行呢?
    servlet虽然是单实例,但是会有线程池调用哦,依然是支持多访问的,要是单线程不早死了?
      

  7.   

    可以仿制一下filter chain的那种方式吧! 把同步机制放到第一个servlet 之后就好办了.. 
    还是同步的问题