page contents

线程安全问题

Pack 发布于 2020-02-27 16:09
阅读 704
收藏 0
分类:Java开发

请问一下,多线程的情况下我用ConcurrentHashMap,所有线程都会修改ConcurrentHashMap的数据 能保证数据的原子性么?


这是我定义的线程池里的线程共享的变量

ConcurrentMap<String,TopoLinkDTO> topoMap =new ConcurrentHashMap<>(); 这是所有线程共享的变量

QGK6PUO66~5FMA6PMJDEYF.png

这是TopoLinkDTO里的属性,

attachments-2020-02-kSnWGfaf5e57793265765.png

所有的线程如果发现topoMap 的key存在了 就将TopoLinkDTO里的count+1( topoLinkDTO.getCount().incrementAndGet();)

这样能保证统计出来的count是对的,准确的么?

469
Pack
Pack

你不用chm, 多线程下使用atomicInteger,也能保证原子性呀。

请先 登录 后评论