ConcurrentMap.putIfAbsent(key,value)用法实例
本文研究的主要是业务上经常会遇到有这种场景,全局维护一个并发的ConcurrentMap, Map的每个Key对应一个对象,这个对象需要只创建一次。如果Map中该key对应的value不存在则创建,否则直接返回。我们先看一下代码:这段代码要做的事情是:。我们期望每次调用 getInstance 方法时要保证相同的 key 返回同一个 Local 对象引用。对上面方法进行改造:这段代码使用了 Map 的 concurrent 形式,并简单的使用了语句这里的错误出在忽视了 putIfAbsent 方法是有返回值的,并且返回值很重要。所以,使用 putIfAbsent 方法时切记要对返回值进行判断。总结以上就是本文关于ConcurrentMap.putIfAbsent用法实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
下载地址
用户评论