zoukankan      html  css  js  c++  java
  • java exception 01

    问题:java.util.concurrentmodificationexception

    背景:java thread

    网上找到的出现的例子如下(项目中真实的code不便给出)

    public class Test()
       {
          private ArrayList<A> abc = new ArrayList<A>();
    
          public void doStuff() 
          {
             for (A a : abc) 
                a.doSomething();
          }
    
          public void removeA(A a) 
          {
             abc.remove(a);
          }
      }

    a.doSomething might call Test.removeA();

    首先说明错误的意思:

    concurrent 同时发生  modification 修改

    在迭代的同时,list被其他线程或程序修改了。

    解决的方法:

    有几种,可以在网上查找,我选择的是 将list复制,迭代复制后的新的list

     private ArrayList<A> abc = new ArrayList<A>();
    ArrayList<A> tempList = new ArrayList<A>(abc);
     public void doStuff() 
          {
             for (A a : tempList) 
                a.doSomething();
          }

    这样问题便可解决,欢迎拍砖!

    解决问题的时候建议多查google,国内上google要用VPNFQ,此外登录美国google的时候,网址如下:www.google.com/ncr 要加上/ncr no country redirect
  • 相关阅读:
    对象访问方式
    GC回收的对象
    邮件工具类
    java内存区域
    RabbitMQ的安装
    Flask信号
    DBUtils数据库连接池
    Flask蓝图基本使用
    Flask中使用cookie和session
    Flask中的CBV
  • 原文地址:https://www.cnblogs.com/lihao007/p/6507239.html
Copyright © 2011-2022 走看看