<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
    主站蜘蛛池模板: a拍拍男女免费看全片| 亚洲AV美女一区二区三区| 亚欧免费无码aⅴ在线观看| 亚洲第一se情网站| 亚洲人成在线中文字幕| 国产成A人亚洲精V品无码性色| 日韩精品免费一区二区三区| 免费国产黄网站在线观看 | 手机在线毛片免费播放| 99视频在线精品免费| 一级有奶水毛片免费看| 免费无码国产V片在线观看| 亚洲乱色伦图片区小说| 亚洲深深色噜噜狠狠网站| 久久综合亚洲色一区二区三区| 亚洲女初尝黑人巨高清| 狠狠色婷婷狠狠狠亚洲综合 | 亚洲AV无码国产剧情| 亚洲中文字幕久在线| 亚洲精品中文字幕无码AV| 亚洲天堂视频在线观看| 精品无码一区二区三区亚洲桃色 | a级在线免费观看| 美女网站在线观看视频免费的| 日韩精品无码永久免费网站| 国产精品亚洲片在线花蝴蝶| 亚洲色偷偷色噜噜狠狠99| 亚洲中文无码卡通动漫野外| 亚洲最大天堂无码精品区| 亚洲香蕉久久一区二区| 亚洲精品一二三区| 亚洲精品久久久久无码AV片软件| 亚洲色大18成人网站WWW在线播放| 亚洲一区二区无码偷拍| 亚洲午夜无码久久久久小说| 亚洲AV成人无码网天堂| 无人视频免费观看免费视频| 一级黄色免费网站| 国内精品免费久久影院| 桃子视频在线观看高清免费视频| 114级毛片免费观看|