我正在编写一个使用JMapViewer的应用程序。有几个线程(在ThreadPoolExecutor中执行)作用于显示的地图(主要是创建/销毁和改变一些MapMarkerCircle的颜色)。这是否违反了单线程规则?我应该在SwingWorker的done()方法中运行映射上的代码以确保它将在事件调度线程中执行吗?
谢谢。
由于标记的setter函数和JMapViewer
上的setter函数调用repaint()
,您需要确保它们仅在事件调度线程上被调用。repaint()
被记录为不是线程安全的,尽管它目前可能正常工作。