在走tomcat的http请求中确实是一个请求对应一个线程,但是这个线程可能是同一个线程。因为tomcat默认使用用线程池技术来服务请求的。比如a请求进来从线程池中分配一个线程来处理这个请求,a请求结束后,线程又被放回到线程池中,b请求进来时有可能又是上次服务a请求的那个线程被去取出来服务b请求。
而Threadlocal又是维护的当前线程的局部变量,所以当我们使用threadlocal时,在每个请求结束后需要清除当前线程的threadlocal变量,以免出现问题。
在走tomcat的http请求中确实是一个请求对应一个线程,但是这个线程可能是同一个线程。因为tomcat默认使用用线程池技术来服务请求的。比如a请求进来从线程池中分配一个线程来处理这个请求,a请求结束后,线程又被放回到线程池中,b请求进来时有可能又是上次服务a请求的那个线程被去取出来服务b请求。
而Threadlocal又是维护的当前线程的局部变量,所以当我们使用threadlocal时,在每个请求结束后需要清除当前线程的threadlocal变量,以免出现问题。