首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

【转】什么是ThreadLocal

2012-10-31 
【转】什么是ThreadLocal?public class JDBCContext{ private static Logger logger Logger.getLogger(JDB

【转】什么是ThreadLocal?

public class JDBCContext{ private static Logger logger = Logger.getLogger(JDBCContext.class); private DataSource ds; protected Connection connection; private boolean isValid = true; private static ThreadLocal jdbcContext;  private JDBCContext(DataSource ds){  this.ds = ds;  createConnection();   } public static JDBCContext getJdbcContext(javax.sql.DataSource ds) {    if(jdbcContext==null)jdbcContext=new JDBCContextThreadLocal(ds);  JDBCContext context = (JDBCContext) jdbcContext.get();  if (context == null) {   context = new JDBCContext(ds);  }  return context; } private static class JDBCContextThreadLocal extends ThreadLocal {  public javax.sql.DataSource ds;  public JDBCContextThreadLocal(javax.sql.DataSource ds)  {   this.ds=ds;  }  protected synchronized Object initialValue() {   return new JDBCContext(ds);  } }}

?

使用单例模式,不同的线程调用getJdbcContext()获得自己的jdbcContext,都是通过JDBCContextThreadLocal 内置子类来获得JDBCContext对象的线程局部变量,这个变

热点排行