日期:2014-05-20  浏览次数:20725 次

ThreadLocal 与 线程同步?
ThreadLocal定义的变量,每一个线程过来,就分配一个变量(其实是一个Map),但是,既然每一个线程都与各自的变量相关,那么,怎么样实现同步呢?比如说,我的Thread1想把x++,然后Thread2想在Thread1操作的基础上执行x--;那么该如何实现呢?

------解决方案--------------------
ThreadLocal的本意就是每个线程一份,互不干扰,就是为了避免同步,提高可伸缩性

探讨

也就是说ThreadLocal和synchronized还有Lock这种机制是有区别的(在功能的实现上)?但是,我看的Think in java 里说这种机制也可以解决资源共享的问题。
引用:

那这种情况就不适合用ThreadLocal