问题标签 [concurrentmodification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
685 浏览

arrays - Groovy,整理列表导致并发修改异常

仍在学习 Groovy 的绳索,从昨晚开始,这个问题一直困扰着我。不知道为什么它会抛出 concurrentmod 异常......(Java 1.6,Groovy 1.8.4)

我有一个钥匙列表... [1,2,3,4,5,6,7,8,9,10,11,12,13]

partitionList(keys,3)我使用从这里获得的自定义函数整理列表(不能使用 java.List.Collat​​e,不在 1.8.6 上)

现在我有一个列表列表...... [[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13]]

如果创建的子列表的数量是奇数,我会删除最后一个子列表[12,13]并按顺序将其键重新分配到其他子列表中,创建...

[[0,1,2,12],[3,4,5,13],[6,7,8],[9,10,11]]

迭代最后一个子列表的值时会发生异常。不知道为什么,因为我正在迭代一个列表并在该循环中更改一个完全不同的列表......

更新:

有趣....如果我不使用该paritionList()功能,替换 def keyRanges = partitionList( keys, 3) 为明确的列表列表... def keyRanges = [[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13]] 问题就消失了。所以我相信 partitionList() 函数正在做一些导致异常的事情

0 投票
2 回答
1403 浏览

java - 如何在避免 ConcurrentModificationException 的同时迭代 HashMap

我有一个 HashMap,它的类型HashMap<String,HashMap<String,int>>现在我需要遍历这个 HashMap 并删除任何键的值为 0 的内部 HashMap。

如果这样的删除使内部 HashMap 为空,则内部 HashMap 的相应键将从外部 HashMap 中删除。我尝试对其进行迭代,然后删除符合要求的元素,但这给了我一个ConcurrentModificationException.

我尝试了以下代码:

我在这一行得到了例外:innerEnt = (Entry) innerIterator.next();. 我尝试了 Iterator 类提供的 remove 方法。但这也不好。

编辑

从 Java 文档中我知道很多if a thread modifies a collection directly while it is iterating over the collection with a fail-fast iterator, the iterator will throw this(ConcurrentModificationException) exception,但我需要完全相同的功能。

0 投票
2 回答
138 浏览

java - 迭代器中的 ConcurrentModificationException 帮助

我在以下代码中得到 ConcurrentModificationException

当我运行代码时它运行良好但突然抛出异常,我猜是由于列表的修改,但我不知道如何修复它

请帮我解决这个问题。

0 投票
2 回答
13853 浏览

java - 防止并发修改异常的最佳方法

下面是一些伪代码。

所以本质上问题是上面代码中没有列出的其他对象调用 getSomeStuff() 来获取列表以用于只读目的。发生这种情况时,我在计时器线程中收到并发修改异常。我尝试使 getSomeStuff 方法同步,甚至尝试在计时器线程中同步块,但仍然不断收到错误。停止并发访问列表的最简单方法是什么?

0 投票
2 回答
896 浏览

android - 为什么我在运行我的应用程序一段时间后得到 ConcurrentModificationException?

我正在开发一个应用程序,我正在使用 achartengine 绘制一个图表,该图表显示了现在要测试的随机数数据。它按预期工作,但在运行几秒钟后它会崩溃,并且当它试图让 run() 线程进入睡眠状态时它会崩溃。它是 LogCat:

据我所知,我认为问题出在 ConcurrentModificationException 上,我已经对此进行了调查,但我无法确定:/。

http://developer.android.com/reference/java/util/ConcurrentModificationException.html http://developer.android.com/reference/java/util/Collection.html

这是我的一段 Java 代码,其中图表被重绘:

谢谢 :)

0 投票
2 回答
1587 浏览

java - 从获取 java.util.ConcurrentModificationException 的 Vector 中删除列表

我试图从如下所示的向量中删除列表。

}

当我运行测试时,我收到以下错误

我知道我必须使用 anIterator来克服这个问题ConcurrentModificationException,任何人都可以让我知道我应该如何以有效的方式/最佳实践使用它吗?

提前致谢。

0 投票
4 回答
3745 浏览

java - arraylist 并发修改

我正在用java创建一个多线程聊天。当用户 u1 向用户 u2 发送消息但用户 u2 未连接时,用户 u1 将消息发送到服务器,用户 u2 连接到服务器后将收到消息。未发送的消息被添加到 ArrayList。用户连接后,他会检查自己是否是待处理消息的收件人。如果是,则将消息发送给他,然后从待处理消息列表中删除。我就是这样做的:

这就是我得到的:

我如何解决它?是因为我正在使用迭代器吗?

0 投票
2 回答
1232 浏览

java - java.util.ConcurrentModificationException 是一个大问题,在这种情况下

当我注意到我打电话时随机得到异常时,我正在为我的决赛制作游戏repaint();

这一切的原因是不同的对象在不同的​​时间更新,并且有自己的Thread更新自己。有时,实体在绘制时会自行更新。绘画线程以大约 60-100 FPS 的速度运行,而实体大约每 300 毫秒更新一次。

游戏不会停止或存在与此相关的任何其他问题。

我知道忽略它是个坏主意,但我还能做些什么吗?拥有多个线程是我能想到的让游戏正常运行的唯一解决方案。

谢谢阅读!

编辑:当我在绘画时尝试删除实体时,似乎会发生此问题;两者都使用相同的列表。

0 投票
1 回答
73 浏览

java - 如果 remove() 调用但什么也没做,迭代器会损坏吗?

假设我正在迭代某个集合,然后remove()用缺席键调用,这样它什么都不做。下一次迭代会导致异常吗?

0 投票
3 回答
2047 浏览

java - 使用复制构造函数同时修改列表

以下代码会导致ConcurrentModificationException副作用或其他副作用吗?

考虑到列表的大小非常大,并且在执行上述代码时另一个线程正在同时修改列表。