在Java的多线程编程中,为保证多个线程对共享变量的安全访问,通常会使用synchronized来保证同一时刻只有一个线程对共享变量进行操作。 但在有些情况下,synchronized不能保证多线程对共享变量的正确读写。例如类有一个类变量,该类变量会被多个类方法读写,当多线程操作该类的实例对象时,如果线程对类变量有读取、写入操作就会发生类变量读写错误,即便是在类方法前加上synchronized也无效,因为同一个线程在两次调用方法之间时锁是被释放的,这时其它线程可以访问对象的类方法,读取或修改类变量。 这种情况下可以将类变量放到ThreadLocal类型的对象中,使变量在每个线程中都有独立拷贝 ...
- 浏览: 1186 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
用Xfire将grails的服务展 ...
简单方法也有,下载一个xfire plugin,只不过对生成的web servi ...
-- by indexchen -
用Xfire将grails的服务展 ...
需要这么麻烦么?
-- by mickeyccq -
ThreadLocal的使用场景
确实深入细致!佩服!
-- by ltian -
ThreadLocal的使用场景
说的真不错,使用ThreadLocal有一个前提是:被Set(Object)的o ...
-- by qqwjz






评论排行榜