<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0

    Java中ThreadLocal的設計和使用:http://www.huawei.org.cn/news/article_show.asp?id=27413

    Hibernate中的ThreadLocal 轉載地址:http://blog.blogchina.com/refer.393753.html

    Hibernate的文檔時看到了關于使ThreadLocal管理多線程訪問的部分。具體代碼如下

    1.  public static final ThreadLocal session = new ThreadLocal();
    2.  public static Session currentSession() {
    3.      Session s = (Session)session.get();
    4.      //open a new session,if this session has none
    5.   if(s == null){
    6.      s = sessionFactory.openSession();
    7.      session.set(s);
    8.   }
          return s;
    9. }

    我們逐行分析
    1。 初始化一個ThreadLocal對象,ThreadLocal有三個成員方法 get()、set()、initialvalue()。
        如果不初始化initialvalue,則initialvalue返回null。
    3。session的get根據當前線程返回其對應的線程內部變量,也就是我們需要的net.sf.hibernate.Session(相當于對應每個數據庫連接).多線程情況下共享數據庫鏈接是不安全的。ThreadLocal保證了每個線程都有自己的s(數據庫連接)。
    5。如果是該線程初次訪問,自然,s(數據庫連接)會是null,接著創建一個Session,具體就是行6。
    6。創建一個數據庫連接實例 s
    7。保存該數據庫連接s到ThreadLocal中。
    8。如果當前線程已經訪問過數據庫了,則從session中get()就可以獲取該線程上次獲取過的連接實例。

    通過ThreadLocal,我們既實現了多線程并發,同時,也實現了SingleTon模式。一舉兩得。

    posted on 2006-01-17 23:35 kelven 閱讀(577) 評論(0)  編輯  收藏 所屬分類: Hibernate
    主站蜘蛛池模板: 国产精品亚洲玖玖玖在线观看| kk4kk免费视频毛片| 伊人久久免费视频| 在线看片免费人成视频福利| 美女扒开屁股让男人桶爽免费 | 国产亚洲高清在线精品不卡 | 日产亚洲一区二区三区| 久久久久国产精品免费网站| 久久精品国产精品亚洲蜜月| 久久久久免费看黄a级试看 | 日本亚洲高清乱码中文在线观看| 国产网站在线免费观看| 免费国产va视频永久在线观看| 亚洲黄色中文字幕| 久久久久久夜精品精品免费啦| 免费观看久久精彩视频| 久久精品a亚洲国产v高清不卡| 国产大片91精品免费观看不卡| 久久精品国产99国产精品亚洲| baoyu116.永久免费视频| 亚洲AV无码专区在线播放中文| 久久午夜无码免费| 亚洲成a人片在线观看精品| 西西大胆无码视频免费| 爱情岛论坛免费视频| 亚洲人成色777777在线观看| 99久久99久久精品免费看蜜桃 | 99在线视频免费观看视频 | 最近中文字幕mv免费高清视频7| 亚洲狠狠婷婷综合久久| 国产成人精品曰本亚洲79ren| 免费国产黄网站在线观看视频| jlzzjlzz亚洲jzjzjz| 亚洲精品综合久久| 最近2022中文字幕免费视频| 亚洲色大成网站www尤物| 国产亚洲自拍一区| 性xxxxx免费视频播放| eeuss草民免费| 亚洲人成网站色在线观看| 中文字幕不卡亚洲|