servlet 中全局變量的使用


在servlet中定義全局變量的時候,開發者最關心的就是多用戶同時操作是,servlet是單例還是多例了,多例的話,全局變量沒有任何問題,如果是單例的話,那么全局變量的值就會影響到其他用戶。servlet是單例多線程。

(網上對於servlet是否是單例多例的說法:servlet 常用的兩種有在web.xml 中聲明,以及實現SingleThreadModel方式。web.xml 里聲明幾次,就會有幾個實例;SingleThreadModel:官方已經廢棄,最多有20個實例);

下面說說單例多線程中 全局變量的使用:個人用的最多的就是 ThreadLocal,用ThreadLocal 來定義變量,這個相當於在線程級別定義了一個變量,實際上就是一個map對應的threadId:value。

示例:public class Th{

    ThreadLocal<String> threadLocalString =new ThreadLocal<>(){

  public String initialValue(){

    return "";

  }

  };

    

  private void main([] args){

    Th th=new Th();

    Thread a = new Thread(th);

    Thread b = new Thread(th);

    Thread c = new Thread(th);

  }

 

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM