我的Swing GUI显示由后台线程按顺序删除的项目的JList。
JList的后面是一个ArrayDeque<Card>
,myHopper,根据AbstractListModel的约定实现了myHopper.getSize()
和myHopper.getElementAt()
。
后台线程使用myHopper.poll()
删除项目。
毫不奇怪,我目前正在获得AWT数组索引超出范围的异常。
我应该怎么做才能在EDT线程和后台线程之间正确同步对myList的访问?我已经看到了对Collections.synchronizedList(arrayList)
的引用,但是我认为不适合我的ArrayDeque。
最佳答案
您是否尝试过仅使用LinkedBlockingDeque而不是ArrayDeque?