避免客户端访问的并发问题

避免客户端访问的并发问题


在Web应用程序开发或者网站开发中,一个Web应用可能会存在多个客户同时访问的情况,甚至可能同时访问同一个servlet,如果程序没有及时地处理并发问题,可能会返回给客户端错误的信息。

避免客户端并发的问题主要有以下两个解决方法:

1.合理决定在servlet中定义的变量的作用域。

2.多个线程同时访问共享数据而导致并发问题时,应该使用Java同步机制对多线程进行同步。Java同步机制确保在任意时刻,只允许有一个线程执行共享数据的代码块,只有当这个线程退出同步块时,其他线程才允许执行同步块,因此可以避免并发所带来的问题。

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        synchronized (this) {   // 同步以下代码块,同步之后,某一时刻只有当前线程可以访问
            // 代码块
        }
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值