国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:17:20
字體:
來源:轉載
供稿:網(wǎng)友
<%@ 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個用戶同時拿到了當前的計數(shù)器,
  // 訪問次數(shù)加1
  // 當更新時是否會丟失訪問次數(shù)呢?
  // 
  // 會的,你可以在count=的代碼后面增加如下的語句模擬一下就知道了
  // 所以此處同樣要同步
  // 那我們自己定義一個同步鎖吧,取名叫l(wèi)ock,放在了JSP的靜態(tài)代碼段里,
  synchronized (lock) {

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

    //
    // 讓線程等待10秒,這是你可以開2個瀏覽器,分別刷新,
    // 最后的計數(shù)器是只增加1的,而不是我們預期的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);
  }
%>
當前一共訪問次數(shù)為:<%=count%>
</body>
</html>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三穗县| 砚山县| 黑山县| 陇川县| 保康县| 河间市| 罗田县| 谢通门县| 九台市| 井冈山市| 大荔县| 信阳市| 呼图壁县| 泗洪县| 霍林郭勒市| 房产| 湄潭县| 婺源县| 青浦区| 阳高县| 肥乡县| 凯里市| 德昌县| 韩城市| 深泽县| 城市| 大渡口区| 崇信县| 包头市| 乌苏市| 竹北市| 鱼台县| 饶平县| 闸北区| 呈贡县| 聂荣县| 祁连县| 阳城县| 山阳县| 玛纳斯县| 博客|