Servlet/JSP技術和ASPPHP等相比由於其多線程運行而具有很高的執行效率由於Servlet/JSP默認是以多線程模式執行的所以在編寫代碼時需要非常細致地考慮多線程的同步問題然而很多人編寫Servlet/JSP程序時並沒有注意到多線程同步的問題這往往造成編寫的程序在少量用戶訪問時沒有任何問題而在並發用戶上升到一定值時就會經常出現一些莫明其妙的問題對於這類隨機性的問題調試難度也很大
在Servlet/JSP中的幾種變量類型
在編寫Servlet/JSP程序時對實例變量一定要小心使用因為實例變量是非線程安全的在Servlet/JSP中變量可以歸為下面的幾類
類變量
requestresponsesessionconfigapplication以及JSP頁面內置的page pageContext其中除了application外其它都是線程安全的
實例變量
實例變量是實例所有的在堆中分配在Servlet/JSP容器中一般僅實例化一個Servlet/JSP實例啟動多個該實例的線程來處理請求而實例變量是該實例所有的線程所共享所以實例變量不是線程安全的
局部變量
局部變量在堆棧中分配因為每一個線程有自己的執行堆棧所以局部變量是線程安全的
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27778.html