我在项目中建了这么一个类public class Test {
private static ThreadLocal local = new ThreadLocal(); public static void put(String sp) {
local.set(sp);
} public static String get() {
return (String)local.get();
}
}我在struts的拦截器中取得用户的请求数据,调用Test.set(str),将其中的一数据放入loacl中,然后在dao层的类中用Test.get()取得数据,但是我不理解,当有多个用户请求时,Test.get()就能取得Test.set(str)的str值呢。
private static ThreadLocal local = new ThreadLocal(); public static void put(String sp) {
local.set(sp);
} public static String get() {
return (String)local.get();
}
}我在struts的拦截器中取得用户的请求数据,调用Test.set(str),将其中的一数据放入loacl中,然后在dao层的类中用Test.get()取得数据,但是我不理解,当有多个用户请求时,Test.get()就能取得Test.set(str)的str值呢。
ThreadLocal 中没有 HashMap
当然知道了,当前线程可以使用 Thread.currentThread() 方法获得。
ThreadLocal可以理解为一个全局的Map对象,
往里面存东西时,以当前线程的标识为键值。