我的Swing GUI显示由后台线程按顺序删除的项目的JList。

JList的后面是一个ArrayDeque<Card>,myHopper,根据AbstractListModel的约定实现了myHopper.getSize()myHopper.getElementAt()

后台线程使用myHopper.poll()删除项目。

毫不奇怪,我目前正在获得AWT数组索引超出范围的异常。

我应该怎么做才能在EDT线程和后台线程之间正确同步对myList的访问?我已经看到了对Collections.synchronizedList(arrayList)的引用,但是我认为不适合我的ArrayDeque。

最佳答案

您是否尝试过仅使用LinkedBlockingDeque而不是ArrayDeque?

10-08 01:39