小编Jor*_*ter的帖子

Java中如何将变量传递给不同的线程

我正在制作一个从 API 获取实时价格信息的程序。然后我想在实时更新的 JavaFX 图表上显示价格信息。当我尝试将信息传递给 JavaFX 线程时,它并不总是正确传递,并且 JavaFX 线程无法获取价格信息。

API 调用是在一个单独的线程上完成的,当它有信息时,它就会调用 updateScene 方法。这是我遇到问题的地方,API 线程包含我尝试设置 JavaFX 线程使用的变量的所有信息,但它没有任何信息。


private CandleStickFeed candleStickFeed;

public void updateScene(CandleStickFeed candleStickFeed){

    this.candleStickFeed = candleStickFeed;

    System.out.println("Feed Size This Thread = " + candleStickFeed.getSize());

    Platform.runLater(new Runnable(){
        
        @Override
        public void run(){
            
            System.out.println("Feed Size JavaFX Thread = " + candleStickFeed.getSize());
            updateChart();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

程序有时会输出

进给尺寸 此线程 = 5

馈送大小 JavaFX 线程 = 5

这是我所期望的。但它有时也会输出

进给尺寸 此线程 = 5

馈送大小 JavaFX 线程 = 0

任何帮助将不胜感激。我刚开始使用多线程,所以不确定我在做什么。我一直在寻找不同的答案,但找不到任何答案。谢谢

java multithreading javafx

0
推荐指数
1
解决办法
118
查看次数

标签 统计

java ×1

javafx ×1

multithreading ×1