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

ThreadLocal如何对数据改变进行保存
最近发现ThreadLocal这个东西,同样可以解决多线程并发的问题,但是不同的线程访问它的时候获得的数据都是他的初始化数据那个方法所返回的数据,那么我不同的线程操作的等于都是一个副本,但是我更改了这个副本的内容了,但是我其他的线程如果也需要了解这个线程所更改的内容该怎么办呢。

比如10个窗口卖100张票,每个窗口算一个线程,100张票用ThreadLocal存储起来,那我10个窗口卖的都是100张票,最后就等于是卖了1000张了,那怎么才能让一个窗口卖了一张票了,对ThreadLocal进行修改了,其他的线程也都能知道这个修改呢?

这个不能解决的话感觉你还得用同步来解决并发啊?

应该是有相关的方法或者什么来解决,但小弟刚学这个玩意,不晓得怎么弄,网上搜的资料也只是解释他们是用的单独的副本。
求指点!!!
------解决方案--------------------
ThreadLocal存在的目的 就是为了当前线程的数据对象在当前线程中使用,如果要共享数据  就换种方法 跟这个类的初衷不符。