解析簡單計數(shù)器的并發(fā)問題_JSP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:struts+spring實現(xiàn)的登陸實例源碼
      剛接觸Jsp的struts不久,又要學(xué)spring,然后把兩者結(jié)合起來用。于是我在網(wǎng)上找了很多的有關(guān)struts+spring的例子,但基本上都是a的例子,然后根據(jù)它的原理重新編寫一本書上用struts實現(xiàn)的例子。 一、運行環(huán)境 1、eclipse-SDK-3.2 2、MyEclipseGA5.0 3、apache-

      <%@ page language="java" contentType="text/html; charset=UTF-8"
          pageEncoding="UTF-8"%>
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Insert title here</title>
      </head>
      <body>
      <%!// 一個同步用的鎖
        private static final Object lock = new Object();%>
      Hello Word!
      <%
        Integer count = 0;
        // 此處是否有同步問題呢?
        // 比如2個用戶同時拿到了當(dāng)前的計數(shù)器,
        // 訪問次數(shù)加1
        // 當(dāng)更新時是否會丟失訪問次數(shù)呢?
        // 
        // 會的,你可以在count=的代碼后面增加如下的語句模擬一下就知道了
        // 所以此處同樣要同步
        // 那我們自己定義一個同步鎖吧,取名叫l(wèi)ock,放在了JSP的靜態(tài)代碼段里,
        synchronized (lock) {

          // 我們使用application 記錄頁面訪問的計數(shù)器
          // 先從里面拿到數(shù)據(jù)
          // 注意這里一定要是使用Integer,而不是int
          // 因為如果第一次訪問,則會返回null,再從Integer轉(zhuǎn)化為int時會出現(xiàn)nullPointerException
          //
          count = (Integer) application.getAttribute("INDEX_COUNTER");

          //
          // 讓線程等待10秒,這是你可以開2個瀏覽器,分別刷新,
          // 最后的計數(shù)器是只增加1的,而不是我們預(yù)期的2
          // Thread.sleep(10000); 

          // 如果是第一次訪問,則進行初始化
          if (count == null) {
            // 這里使用了JDK5.0以后支持的自動box方式
            count = 0;

            // 保存到application里面
            application.setAttribute("INDEX_COUNTER", count);
          }
          count++;
          // 保存到application里面
          application.setAttribute("INDEX_COUNTER", count);
        }
      %>
      當(dāng)前一共訪問次數(shù)為:<%=count%>
      </body>
      </html>

      分享:淺談Tomcat常用調(diào)試技巧
      大多數(shù)用戶安裝好Tomcat之后就開始正式運行,很少對服務(wù)器進行全面調(diào)優(yōu)。這樣做的結(jié)果是如果并發(fā)量小,系統(tǒng)可能不會出問題,但是并發(fā)量大時,系統(tǒng)反應(yīng)速度迅速下降,但由于不了解原因,因此可能還在自己的應(yīng)用程序中尋找問題~~,本文就Tomcat4為基礎(chǔ)向大家介

      來源:模板無憂//所屬分類:JSP教程/更新時間:2010-03-16
      相關(guān)JSP教程