我们在 GUI 日志中发现了 ConcurrentModificationException 异常,这似乎与更改支持表模型的列表有关。
顺序似乎是:
- event1 触发后备列表迭代和更改列表
- 更改列表会触发一个中断当前执行的 event2(更改的副产品事件)。 在 event1 的处理结束之前处理此事件
- event2 也改变了列表。
- event1 获得控制权并继续其迭代,但由于后备列表已更改而崩溃
由于它们都在 EDT 上,如果我在两个地方都使用同步关键字(或锁),event2 会放弃并让 event1 处理继续,还是会创建一个花哨的死锁?