我正在编写一个使用JMapViewer的应用程序。有几个线程(在ThreadPoolExecutor中执行)作用于显示的地图(主要是创建/销毁和更改某些MapMarkerCircle的颜色)。这是否违反单线程规则?我应该在SwingWorker的done()方法中运行映射到地图上的代码,以确保它将在Event Dispatch Thread中执行吗?
感谢。
答案 0 :(得分:2)
由于JMapViewer
调用repaint()
上的标记的setter函数,您需要确保它们仅在事件派发线程上调用。 repaint()
is documented虽然目前可能正常工作,但不是线程安全的。