我们在GUI日志中发现了一个ConcurrentModificationException异常,这似乎与更改支持表模型的列表有关。Java Swing/EDT事件处理同步
顺序似乎是:
- 事件1触发列表
- 改变列表的背衬列表迭代和改变触发中断当前执行(变更的副产品事件)的事件2。 此事件在事件1的处理结束之前处理
- 事件2也会更改列表。
- 事件1获得控制权,并继续迭代,因为后台列表已经改变
因为他们都在美国东部时间,如果我使用synchronized关键字(或锁定),在这两个地方它吹起来,将event2放弃并让event1处理继续,否则我会创建一个奇特的死锁?
您还没有创建一些新的死锁。它被称为脏读,并且非常有名。 –