Android 开发

崩溃修改:ConcurrentModificationExcep

2018-12-12  本文已影响19人  BugFree张瑞

实战:通过腾讯的 bugly 反馈的问题

截图1.jpeg

解决 Kwai-pro 的bug,因为如果每次都是通过 .getMessage() 方法获取,有可能有别的线程在操作该数据集,导致 ConcurrentModificationException 的出现

截图2.jpeg

解决方案:

该异常表示迭代器迭代过程中,迭代的对象发生了改变,如数据项增加或删除。

[解决方案]:
由于迭代对象不是线程安全,在迭代的过程中,会检查 modCount 是否和初始 modCount 即 expectedModCount 一致,如果不一致,则认为数据有变化,迭代终止并抛出异常。常出现的场景是,两个线程同时对集合进行操作,线程1对集合进行遍历,而线程2对集合进行增加、删除操作,此时将会发生 ConcurrentModificationException 异常。

具体方法:多线程访问时要增加同步锁,或者建议使用线程安全的集合:

——乐于分享,共同进步,欢迎补充
——Any comments greatly appreciated
——诚心欢迎各位交流讨论!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——简书:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr

上一篇下一篇

猜你喜欢

热点阅读