Memorry_DrEam 2017-05-23 02:48 采纳率: 0%
浏览 1286

多线程环境下使用线程安全的ConcurrentHashMap代码有何问题

图片说明

  • 写回答

1条回答 默认 最新

  • 庄粟 2017-05-23 07:42
    关注

    多线程的问题,在思考它的时间你要知道它有一个特点是可能会在任何时候中断当前工作去做别的,就像一个cpu控制都两个人,时间分配不定,可能1号
    正在跑步,可能他会停在空中的时间cpu不理他了去搞2号了。

    这里主要问题不是map是不是线程安全的,而是add这个方法不是线程安全的,如果这时有两个线程他们持有的key相同,
    假设线程1先进来取出map中对应key的值为2,正在进行if语句cpu不鸟它了
    这时线程2进来,cpu看它比较爽,让它直接走完这个方法,这时key对应的值是3
    线程1终于被临幸了,它只知道它手里的东西是2它又给key设了次3

    这里就有问题了,再说如果是3个线程,线程3没冲突的把值设成了4,线程1又把值设回3了,这就是多线程异步会出的问题

    评论

报告相同问题?

悬赏问题

  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao