kel*_*yfj 99 java multithreading
我在这里阅读ThreadDocal的JavaDoc
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ThreadLocal.html
并且它说"ThreadLocal实例通常是希望将状态与线程关联的类中的私有静态字段(例如,用户ID或事务ID)."
但我的问题是为什么他们选择让它静态(通常) - 它使得"每个线程"状态有点混乱,但字段是静态的?
Aff*_*ffe 121
因为如果它是一个实例级别字段,那么它实际上是"每个线程 - 每个实例",而不仅仅是一个保证的"每个线程".这通常不是您正在寻找的语义.
通常它会保存类似于用户对话,Web请求等对象的对象.您不希望它们也作为类的实例进行子作用域.
一个Web请求=>一个持久性会话.
没有一个Web请求=>每个对象一个持久性会话.
归档时间: |
|
查看次数: |
30933 次 |
最近记录: |