<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 轉(zhuǎn)載地址: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根據(jù)當前線程返回其對應的線程內(nèi)部變量,也就是我們需要的net.sf.hibernate.Session(相當于對應每個數(shù)據(jù)庫連接).多線程情況下共享數(shù)據(jù)庫鏈接是不安全的。ThreadLocal保證了每個線程都有自己的s(數(shù)據(jù)庫連接)。
    5。如果是該線程初次訪問,自然,s(數(shù)據(jù)庫連接)會是null,接著創(chuàng)建一個Session,具體就是行6。
    6。創(chuàng)建一個數(shù)據(jù)庫連接實例 s
    7。保存該數(shù)據(jù)庫連接s到ThreadLocal中。
    8。如果當前線程已經(jīng)訪問過數(shù)據(jù)庫了,則從session中g(shù)et()就可以獲取該線程上次獲取過的連接實例。

    通過ThreadLocal,我們既實現(xiàn)了多線程并發(fā),同時,也實現(xiàn)了SingleTon模式。一舉兩得。

    posted on 2006-01-17 23:35 kelven 閱讀(577) 評論(0)  編輯  收藏 所屬分類: Hibernate
    主站蜘蛛池模板: 91热成人精品国产免费| 一级中文字幕乱码免费| 真实国产乱子伦精品免费| 国产gv天堂亚洲国产gv刚刚碰| 国产亚洲精品美女| 免费在线一级毛片| AV无码免费永久在线观看| 亚洲av最新在线网址| 毛片免费在线观看| 亚洲电影一区二区三区| 亚洲性线免费观看视频成熟| 日本黄网站动漫视频免费| 亚洲天堂电影在线观看| 91嫩草国产在线观看免费| 亚洲无线观看国产精品| 亚洲高清免费视频| 亚洲精品亚洲人成人网| 亚洲一区二区三区高清在线观看| 国产精品成人啪精品视频免费| 亚洲午夜福利精品久久| 成av免费大片黄在线观看| 亚洲va无码手机在线电影| 中文字幕成人免费视频| 亚洲一区二区三区乱码在线欧洲| 永久黄网站色视频免费| 一级毛片大全免费播放下载| 国产亚洲A∨片在线观看| 啦啦啦完整版免费视频在线观看| 亚洲一区二区三区国产精品无码| 免费观看一级毛片| 永久免费无码日韩视频| 亚洲a一级免费视频| 噼里啪啦电影在线观看免费高清| 蜜芽亚洲av无码一区二区三区| 成人浮力影院免费看| 亚洲综合激情五月色一区| 亚洲AⅤ无码一区二区三区在线| 中文字幕一区二区三区免费视频| 蜜芽亚洲av无码精品色午夜| 成人性生免费视频| a毛片视频免费观看影院|