您好,登錄后才能下訂單哦!
由于默認情況下Servlet,在內存中只有一個實例對象,當多個瀏覽器并發訪問Servlet時就有可能產生線程安全問題
解決方案:
1、加鎖--效率降低 synchronized(this){ }
2、SingleThreadModel接口 -- 不能真的防止線程安全問題
在服務器的內部維護一個對象池,放servlet的對象,一個請求過來,會到池里檢查一下有沒有這個servlet,如果沒有,創建一個給當前線程使用,使用完的就放回池里。如果第一個線程使用的servlet對象還沒有還回池里,第二線程過來就會再創建一個servlet對象,兩個servlet對象會隨機被選中給第三個線程使用。
3、最終解決方案:
在Servlet中盡量少用類變量,如果一定要用類變量則用鎖來防止線程安全問題,但是要注意鎖住內容應該是造成線程安全問題的核心代碼,盡量的少鎖主內容,減少等待時間提高servlet的響應速度。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。