ThreadLocal变量与一般成员变量有什么区别?
解决方案 »
- 在Servlet中sendRedirect和forward方法切换页面的问题
- QBC查询时间段问题,急!!!!
- struts如何表现MVC模式的?
- java, tomcat高手看过来
- 关于一个年份日期的错误500 Servlet Exception java.lang.NumberFormatException: For input string:"9-"
- 求解答一个奇怪的字符串处理要求
- 关于jsp启动Tomcat的问题
- 写了个让EL可以call任何方法的工具
- 用java,jsp可以在网页上作出漂亮的报表么??大侠请解疑。。。
- 怎么在一个类中引用其他的类???
- 请教 怎么安全 从msn导入 联系人
- 求jquery.autocomplete示例
当然了,我说的是原理class ThreadId {
int Id = 0;
}
那么一个ThreadLocal的变量,相当于
HashMap<ThreadId, Local> threadLocal = new ...
明白我的意思吗?
而且我这些的这些,可能是Java的实现
这个类主要是对变量的线程管理,主要用于线程安全的并发处理,ThreadLocal并不能替代同步机制,两者面向的问题领域不同。同步机制是为了同步多个线程对相同资源的并发访问,是为了多个线程之间进行通信的有效方式;而ThreadLocal是隔离多个线程的数据共享,从根本上就不在多个线程之间共享资源(变量),这样当然不需要对多个线程进行同步了。所以,如果你需要进行多个线程之间进行通信,则使用同步机制;如果需要隔离多个线程之间的共享冲突,可以使用ThreadLocal同步,并发,这里面的些东西值得你好好研究一下,很多的java底层实现都必须要用到它