问题标签 [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.
java - 当我的程序中的所有方法都同步时,我是否有可能得到 ConcurrentModificationException?
ConcurrentModificationException
即使我使整个程序的所有方法同步(包括静态方法和方法),我也得到了一个main
。
我没有隐藏的迭代器。
- 这怎么可能呢?!
- 这是什么意思?
- 我该如何解决?
java - 我不断收到 java.util.concurrentmodificationexception .. 如何解决这个问题?
我一直在研究这段代码。这是我想要发生的伪代码:
a.检查sections(这是一个列表)大小是否为
0。b.如果sections大小为0,则通过调用sections.add(newSection)自动将学生注册到该部分
c.else如果sections大小不为零,请检查d.如果没有冲突
,则通过调用sections.add(newSection)
e.else将学生注册到该部分
Java 不断向我抛出“java.util.concurrentmodificationexception”错误。我知道,我不应该在遍历列表时更改 ArrayList 的大小,因为它会修改迭代器。还有其他方法可以解决这个问题吗?:D
非常感谢。非常感谢您的帮助。:)
mysql - 如何最好地处理多对多并发冲突?
我们有一个类似于 gmail 标签的应用程序功能 - 您可以“标记”这些项目。现在这是一个并发应用程序,即这个所谓的“白板”可由多个用户编辑 - 这意味着许多用户可以选择重新/分组项目。基本上同时标记多个项目。
肯定会有冲突,但问题是如何最好地处理它?唯一想到的策略类似于著名的 ALOHA 协议,即,在提交之前检查是否有任何更改 - 如果是,则中止并通知用户;否则提交。这是非常低效的IMO。
这里有两个相似的想法——一个比较难,另一个比较容易:
第一个更容易:) - 覆盖更改,即重复的只会被更新,但新的也会被标记。
困难的一个:检查要“删除”的内容,即,可能有一些不属于该类别(用户 2 说。即,用户 1 进行了更改,用户 2 也同时进行了更改。基本上找到一组标记项目 {user1 - user2})。这将非常困难,恕我直言,真的不值得付出努力。
我想知道在这种情况下使用的最佳实践解决方案是什么,既不会妨碍用户体验,也不会混淆他们。
(这是一个带有 MySQL 后端和 Jquery/ajax 前端的 J2EE/Restlet 应用程序)
java - Java List 和递归导致并发修改异常
下面的函数递归地遍历一个列表并将其除以一半并对子列表做一些事情。当 listsize 为 2 时,递归中断。我知道如果在迭代列表时更改列表,则会发生并发修改异常。但我不使用迭代,它仍然会发生:
java - Java - 并发修改异常
以下代码几乎在每次调用时都会引发 ConcurrentModificationException。第二段代码不会引发异常,但这不是我需要的正确逻辑。如果对象是 的实例EditorFrame
,我需要调用自定义处置策略,这就是该close()
方法的内容。但是,如果它只是一个基本框架,我希望它调用dispose()
.
我环顾了这个网站并遵循了一些说明,但我发现没有一个有效。
抛出异常的代码:
这段代码有效,但这不是我想要的:
感谢您的帮助!
java - 在 Java 中同步线程
我有两个线程在修改同一个对象,比如说 MyObject,所以已经同步了这个对象。但在其中一个线程中,另一个对象被修改,因此必须调用 MyObject。
IE
这会导致 ConcurrentModificationExceptions。我不知道如何解决这个问题。如果我不同步,我会在两个线程都尝试调用 MyObject 时遇到异常。我怎样才能解决这个问题?
更新:代码适用于 Android 设备。我之前没有提到它,因为这里没有 Android 特定的对象在起作用。LogCat 输出不是很有帮助
02-03 02:47:43.660: ERROR/AndroidRuntime(5258): Uncaught handler: thread main exiting due to unaught exception 02-03 02:47:43.670: ERROR/AndroidRuntime(5258): java.util.ConcurrentModificationException 02-03 02:47:43.670: ERROR/AndroidRuntime(5258): at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64) 02-03 02:47:43.670: ERROR/AndroidRuntime(5258): at com.jjg .myapp.gameunit.findEnemy(MoveableUnit.java:656)//<---在这个方法中,Gamestate 的集合被迭代到 02-03 02:47:43.670: ERROR/AndroidRuntime(5258): at com.jjg.myapp。 gameunit.update(GameUnit.java:416)
我试图同步的对象本质上是一个名为 gs 的 GameState。它包含各种 ArrayList、数组和其他对象。gs 不是静态的。
上面出现问题的方法是:
getAllUnits 返回一个 GameUnits 的 ArrayList(包括调用该方法的 GameUnit - 我不需要迭代器,因为没有对象被删除或创建)。
ruby-on-rails - PostgreSQL + Rails 并发说明
我正在构建一个后台作业,用于更新 Web 应用程序的用户统计信息。该作业目前需要 55-60 秒,我担心如果用户在作业运行的同时尝试加载他的统计信息页面会发生什么。
根据我对 PostgreSQL 和并发的阅读,如果两个客户端尝试访问同一行(一个更新和一个读取),并且我没有明确启动任何事务,第一个只需要等待第二个结束。
因此,如果我正确理解这一点,我可能会遭受的唯一性能损失是用户尝试在更新行的同时加载其统计信息页面的可能性极小。除非我明确配置 Postgres 来执行此操作,否则在 55-60 秒的工作期间,整个统计表不会被锁定,对吗?
这是正确的解释吗?我还缺少其他因素吗?
(我提到 Rails 部分以防万一它与上述情况有任何关系)
(另外:PostgreSQL 版本是 9.0.4)
java - 解决 ConcurrentModificationException
我正在写一个小游戏,它在屏幕上移动了许多圆圈。
我在两个线程中管理圆圈,如下所示:
m_circles 在圆的 ArrayList 中。
以及以下线程:
我的问题是我在该行得到 ConcurrentModificationException
在第一个线程中。起初,我尝试使用 foreach 循环遍历 ArrayList,这给了我同样的异常。
在对此异常进行了一些研究后,我看到了两个解决方案:
1. 将访问集合的部分放在同步块中。
2.使用集合的Iterator对象。
他们都没有为我解决这个问题。
android - MapView 上的 java.util.ConcurrentModificationException
伙计们
很多天以来,我都面临着非常奇怪的问题。我正在尝试经常更新覆盖。因此,有时当我触摸地图时会收到“java.util.ConcurrentModificationException”,或者有时会在地图尝试更新叠加层时收到“java.util.ConcurrentModificationException”但我没有找到完美的线条,该错误即将到来。
我正在使用气球叠加
我认为它会引发错误,"mapview.getOverlay()"
因为它在 1 秒内调用了 4-5 次..
谢谢,
CapDroid
这是代码流..我的线程代码....
这是我的更新方法(); 在此代码中,hashmapOverlay 是 HashMap,如下所示
这是我的 addOverlayMethod
java - 并发修改异常java,我觉得这里不能用迭代器?
我有一个需要迭代并删除某些项目的列表。我不能使用迭代器,因为我需要为每个不能使用迭代器的项目(例如ls.getStatus()
)调用方法。如果ls.getStatus() == 0
我需要删除该项目。我怎样才能避免ConcurrentModificationException
?
谢谢