问题标签 [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.
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.Collate,不在 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() 函数正在做一些导致异常的事情
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
,但我需要完全相同的功能。
java - 迭代器中的 ConcurrentModificationException 帮助
我在以下代码中得到 ConcurrentModificationException
当我运行代码时它运行良好但突然抛出异常,我猜是由于列表的修改,但我不知道如何修复它
请帮我解决这个问题。
java - 防止并发修改异常的最佳方法
下面是一些伪代码。
所以本质上问题是上面代码中没有列出的其他对象调用 getSomeStuff() 来获取列表以用于只读目的。发生这种情况时,我在计时器线程中收到并发修改异常。我尝试使 getSomeStuff 方法同步,甚至尝试在计时器线程中同步块,但仍然不断收到错误。停止并发访问列表的最简单方法是什么?
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 代码,其中图表被重绘:
谢谢 :)
java - 从获取 java.util.ConcurrentModificationException 的 Vector 中删除列表
我试图从如下所示的向量中删除列表。
}
当我运行测试时,我收到以下错误
我知道我必须使用 anIterator
来克服这个问题ConcurrentModificationException
,任何人都可以让我知道我应该如何以有效的方式/最佳实践使用它吗?
提前致谢。
java - arraylist 并发修改
我正在用java创建一个多线程聊天。当用户 u1 向用户 u2 发送消息但用户 u2 未连接时,用户 u1 将消息发送到服务器,用户 u2 连接到服务器后将收到消息。未发送的消息被添加到 ArrayList。用户连接后,他会检查自己是否是待处理消息的收件人。如果是,则将消息发送给他,然后从待处理消息列表中删除。我就是这样做的:
这就是我得到的:
我如何解决它?是因为我正在使用迭代器吗?
java - java.util.ConcurrentModificationException 是一个大问题,在这种情况下
当我注意到我打电话时随机得到异常时,我正在为我的决赛制作游戏repaint();
这一切的原因是不同的对象在不同的时间更新,并且有自己的Thread
更新自己。有时,实体在绘制时会自行更新。绘画线程以大约 60-100 FPS 的速度运行,而实体大约每 300 毫秒更新一次。
游戏不会停止或存在与此相关的任何其他问题。
我知道忽略它是个坏主意,但我还能做些什么吗?拥有多个线程是我能想到的让游戏正常运行的唯一解决方案。
谢谢阅读!
编辑:当我在绘画时尝试删除实体时,似乎会发生此问题;两者都使用相同的列表。
java - 如果 remove() 调用但什么也没做,迭代器会损坏吗?
假设我正在迭代某个集合,然后remove()
用缺席键调用,这样它什么都不做。下一次迭代会导致异常吗?
java - 使用复制构造函数同时修改列表
以下代码会导致ConcurrentModificationException
副作用或其他副作用吗?
考虑到列表的大小非常大,并且在执行上述代码时另一个线程正在同时修改列表。