java - 在 JavaFX 中,observableArrayList 线程安全吗?

标签 java multithreading javafx thread-safety

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

最佳答案

对于这个特定的用例 - ObservableList 绑定(bind)到 TableView,您只能从 FX Application Thread 访问列表。这是因为对列表的更改将导致对 TableViewall changes to the scene graph must occur on the FX Application Thread 的更改。 .

所以在这种情况下,关于 ObservableList 是否线程安全的问题是一个有争议的问题:由于其他原因你只能从单个线程访问它,所以你不需要它成为。

如果您有一个需要更新列表的后台线程,您可以将这些更新包装在对 Platform.runLater(...) 的调用中,从而安排这些更新在 FX 应用程序线程上发生。 , 或者(这可能更可取)通过使用 javafx.concurrent API管理您的线程。

关于java - 在 JavaFX 中,observableArrayList 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498307/

相关文章:

JavaFx 停止移动图像涂抹 Canvas

java - Rome RSS - 禁用 Rome RSS 中的验证

java - 如何使用Java Resthighlevel客户端生成相同的elasticsearch查询?

Java ExecutorService 和同步

Java 停止 GIF 动画

javafx - 如何让 TabPane 填充其父级?

java - 如何在 Eclipse 中运行一个简单的 Java 程序?

Java 源文件在 IntelliJ 中显示为空的反编译类文件

iphone - Objective C - 异步http请求阻塞程序

.net - 检查AutoResetEvent状态