在JavaFX中,observableArrayList线程是否安全?

use*_*688 6 java multithreading javafx thread-safety

我通过修改可观察数组列表来更新表,但现在2个线程可能会修改可观察数组列表.我应该在同步方法中放置修改列表的代码,还是只允许1个线程修改列表?

Jam*_*s_D 10

对于此特定用例 - 在ObservableList绑定到a的情况下TableView,您只能访问FX应用程序线程中的列表.这是因为对列表的更改将导致更改TableView,并且场景图的所有更改必须在FX应用程序线程上发生.

因此,在这种情况下,关于ObservableList线程是否安全的问题是一个没有实际意义的问题:因为您只能出于其他原因从单个线程访问它,所以您不需要它.

如果您有一个需要更新列表的后台线程,您可以Platform.runLater(...)通过使用javafx.concurrentAPI来管理线程,将这些更新安排在FX应用程序线程上,或者(这可能更好).