• ArrayMap java.lang.ArrayIndexOutOfBoundsException


    错误堆栈:

    java.lang.ArrayIndexOutOfBoundsException: length=0; index=1
            at android.support.v4.util.SimpleArrayMap.indexOf(SimpleArrayMap.java:83)
            at android.support.v4.util.SimpleArrayMap.put(SimpleArrayMap.java:381)
    

    示例错误代码:

    final ArrayMap testArrayMap = new ArrayMap();
    
            new  Thread("线程1"){
                @Override
                public void run() {
                    super.run();
                    while (true){
                        testArrayMap.put("aaa","fffff");
                    }
                }
    
            }.start();
    
            new  Thread("线程2"){
                @Override
                public void run() {
                    super.run();
                    while (true){
                        testArrayMap.clear();
                    }
                }
    
            }.start();
    

    错误原因:
    ArrayMap 不支持多行程,请在一个线程里面使用。不然会导致数组越界。如果想在多线程里面使用,请使用HasTable。

    google 的 ArrayMap 本身就没有支持多线程,在最新的support 包里面,如果你还多线程使用ArrayMap,就会throw CME (ConcurrentModificationException)

  • 相关阅读:
    JOISC2017 手持ち花火 (Sparklers) 题解
    Codeforces 1427E. Xum 题解
    AGC027D
    Codeforces 1416F. Showing Off 题解
    AGC032F
    AGC019E
    TCP实验(前言)
    OS第一次实验截图
    第12组 Beta (2/6)(丁泽中)
    第12组 Beta (1/6)(丁泽中)
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/10568530.html
Copyright © 2020-2023  润新知