遇到问题的时候,随意想法,一步一步的去解决,结果得到了错误的理论。
哈哈,比如上面一篇并发map的问题,其实我说的标题并没有错,并发map文档中也说,其线程安全并不是绝对的,而是相对的。
其实我的问题出在并发一致性上。目的已经达到,了解了根本的问题,多谢JE的各位大牛,细心的看完我的文章,哈哈,一看就知道没有打草稿。
当然有一点值得深思的是,为什么我的贴子会被投为新手,所有人都了解其执行内幕.
比如有位兄弟说: putIfAbsent,你知道这个方法是什么意思吗?
这个是当这个值在map中存在的时候不进么覆盖。而我要的是覆盖的效果,所以回复这条的兄弟或许不了解我的需求。[数据一致性问题]
有人回复是widgetCacheMap = mm; 的问题,变量替换,是的,的确是这个问题,当变量被替换了变量被替换,破坏了widgetCacheMap作为全局变量的一致性原则。。[给力的评论]
有位仁兄说
widgetCacheMap = mm;
你测来测去测的是HashMap,跟ConcurrentHashMap有半毛钱的关系?
这位仁兄,说的是我的一种方案,看来全局变量的替换是最大的问题,那么全局变量不该替换。[给力的评论]
虽然知道原理所在,因为是草稿,没有经过自己的审核,只是想到什么copy什么。
但是该如何维护这个全局Map呢。
最后结论是还是使用map的方法进行put,最好不要进行变量的替换.
结论:在线程对全局变量进行操作的时候,需要进行同步
哈哈,比如上面一篇并发map的问题,其实我说的标题并没有错,并发map文档中也说,其线程安全并不是绝对的,而是相对的。
其实我的问题出在并发一致性上。目的已经达到,了解了根本的问题,多谢JE的各位大牛,细心的看完我的文章,哈哈,一看就知道没有打草稿。
当然有一点值得深思的是,为什么我的贴子会被投为新手,所有人都了解其执行内幕.
比如有位兄弟说: putIfAbsent,你知道这个方法是什么意思吗?
这个是当这个值在map中存在的时候不进么覆盖。而我要的是覆盖的效果,所以回复这条的兄弟或许不了解我的需求。[数据一致性问题]
有人回复是widgetCacheMap = mm; 的问题,变量替换,是的,的确是这个问题,当变量被替换了变量被替换,破坏了widgetCacheMap作为全局变量的一致性原则。。[给力的评论]
有位仁兄说
widgetCacheMap = mm;
你测来测去测的是HashMap,跟ConcurrentHashMap有半毛钱的关系?
这位仁兄,说的是我的一种方案,看来全局变量的替换是最大的问题,那么全局变量不该替换。[给力的评论]
虽然知道原理所在,因为是草稿,没有经过自己的审核,只是想到什么copy什么。
但是该如何维护这个全局Map呢。
最后结论是还是使用map的方法进行put,最好不要进行变量的替换.
结论:在线程对全局变量进行操作的时候,需要进行同步