zoukankan      html  css  js  c++  java
  • java.util.ConcurrentModificationException 多线程访问ArrayList引起

    http://blog.csdn.net/androiddevelop/article/details/21509345   Java ConcurrentModificationException 异常分析与解决方案

    http://www.cnblogs.com/andy-zhou/p/5339683.html                  Java ConcurrentModificationException异常原因和解决方法

    Process: com.android.systemui
    Flags: 0x38c83e0d
    Package: com.android.systemui v25 (7.1.1)
    Foreground: No
    Build: PROTRULY/DARLING-VR-PHONE/VR7-1:7.1.1/NMF26F/PROTRULY-VR7-7.1.1.100A:user/release-keys
    
    java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.next(ArrayList.java:831)
        at com.android.systemui.statusbar.policy.KeyguardMonitor.notifyKeyguardChanged(KeyguardMonitor.java:130)
        at com.android.systemui.statusbar.policy.KeyguardMonitor.notifyKeyguardState(KeyguardMonitor.java:112)
        at com.android.systemui.statusbar.phone.PhoneStatusBar.updateKeyguardState(PhoneStatusBar.java:4767)
        at com.android.systemui.statusbar.phone.PhoneStatusBar.hideKeyguard(PhoneStatusBar.java:4636)
        at com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager.hide(StatusBarKeyguardViewManager.java:346)
        at com.android.systemui.keyguard.KeyguardViewMediator.handleStartKeyguardExitAnimation(KeyguardViewMediator.java:1806)
        at com.android.systemui.keyguard.KeyguardViewMediator.handleHide(KeyguardViewMediator.java:1762)
        at com.android.systemui.keyguard.KeyguardViewMediator.handleKeyguardDone(KeyguardViewMediator.java:1580)
        at com.android.systemui.keyguard.KeyguardViewMediator.-wrap5(KeyguardViewMediator.java)
        at com.android.systemui.keyguard.KeyguardViewMediator$4.handleMessage(KeyguardViewMediator.java:1498)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6140)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

     

    推荐使用ConcurrentHashMap或者CopyOnWriteArrayList

    CopyOnWriteArrayList.java

     

    CopyOnWriteArrayList注意事项

    (1) CopyOnWriteArrayList不能使用Iterator.remove()进行删除。
    (2) CopyOnWriteArrayList使用Iterator且使用List.remove(Object);会出现如下异常:
    java.lang.UnsupportedOperationException: Unsupported operation remove
        at java.util.concurrent.CopyOnWriteArrayList$ListIteratorImpl.remove(CopyOnWriteArrayList.java:804)

  • 相关阅读:
    MySQL开发索引创建规范
    如何从传统软件开发顺利过渡到互联网技术开发
    Java中return返回结果的优先级
    mongodb c++ driver 2.0编译使用
    Android MediaScannerJNI源代码具体解释
    构建你的长寿命的API第1部分:规范驱动的API开发
    CoreImage 中的模糊滤镜
    C++编程技巧降低编译时间
    我们年轻,阳光免费
    验证时出错。HRESULT = '8000000A'
  • 原文地址:https://www.cnblogs.com/onelikeone/p/7065076.html
Copyright © 2011-2022 走看看