【问题标题】:How to pass data to Platform.runLater如何将数据传递给 Platform.runLater
【发布时间】:2026-02-10 22:20:07
【问题描述】:

我需要根据在套接字接收器线程中接收到的套接字数据更改我的 GUI 窗口的标题。我想知道有没有办法将intlong 等变量传递给Platform.runLater,以避免仅用于访问int 变量的互斥锁。这是一个示例代码:

// Receiver Socket thread
int opnMode = byteBuffer.getInt();

Platform.runLater(() -> { //GUI thread
    ((Stage) Fx.Pane.getScene().getWindow()).setTitle("Operation mode " + " (" + opnMode + ")");
});

在上面的代码中,我使用变量opnMode 而不使用互斥锁,因为它被两个线程访问。

【问题讨论】:

  • 如果opnMode 是一个局部变量,那么您无需担心(至少基于提供的当前代码,这不是minimal reproducible example)。

标签: java javafx mutex


【解决方案1】:

您的代码应该可以正常工作,因为您的 int 实际上是最终的。 下面是对这个问题的讨论:https://www.baeldung.com/java-effectively-final

【讨论】: