[size=medium][color=green] // 实体化私有静态实体管理器变量emf
private static final EntityManagerFactory emf;//这个工厂可以创建实题管理器
// 实体化私有静态本地线程变量threadLocal
private static final ThreadLocal<EntityManager> threadLocal;//ThreadLocal并不是一个Thread,而是Thread的局部变量,
//也许把它命名为ThreadLocalVariable更容易让人理解一些。
/**
* 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
* 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。
*
*
* 如果使用一个Map集合呢下面用TreadLocal类的机制说明一下
*Private Map vaMap = new Collection.synchronizedMap(new HashMap());一般这个HashMap是最觉的一种
* Map集合,应该记住他的使用方法,小尹说他喜欢用的一个集合类就是List
* vaMap的使用是:vaMap.put(Thread.currentThread,newvalue);
* 这个Map的对象的键值是一个线程对象,Map的值是这个相对的线程中的值.
* Object o = Map.get(currentthread);就能取得这个线程的相对应的值.
* 想要移除某个线程的值也是很简单的直接,T.remove(currentThread)就可以了[/color][color=darkblue][/color][/size][align=center][/align]
private static final EntityManagerFactory emf;//这个工厂可以创建实题管理器
// 实体化私有静态本地线程变量threadLocal
private static final ThreadLocal<EntityManager> threadLocal;//ThreadLocal并不是一个Thread,而是Thread的局部变量,
//也许把它命名为ThreadLocalVariable更容易让人理解一些。
/**
* 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
* 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。
*
*
* 如果使用一个Map集合呢下面用TreadLocal类的机制说明一下
*Private Map vaMap = new Collection.synchronizedMap(new HashMap());一般这个HashMap是最觉的一种
* Map集合,应该记住他的使用方法,小尹说他喜欢用的一个集合类就是List
* vaMap的使用是:vaMap.put(Thread.currentThread,newvalue);
* 这个Map的对象的键值是一个线程对象,Map的值是这个相对的线程中的值.
* Object o = Map.get(currentthread);就能取得这个线程的相对应的值.
* 想要移除某个线程的值也是很简单的直接,T.remove(currentThread)就可以了[/color][color=darkblue][/color][/size][align=center][/align]