Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定期从线程检索结果的最佳方法_Java_Multithreading_Javafx - Fatal编程技术网

Java 定期从线程检索结果的最佳方法

Java 定期从线程检索结果的最佳方法,java,multithreading,javafx,Java,Multithreading,Javafx,我是线程新手,但我需要使用线程才能使javafx应用程序正常工作。我的问题是,我需要在我的程序中执行大量计算,并在其间定期更新UI。我知道在javafx线程中进行计算会阻止UI更新,因此我需要将该工作转移到另一个线程 我需要知道的是,因为我以前从未使用过线程,所以定期启动该线程、执行部分计算并将结果发送回javafx线程的最佳方式是什么 通常,您使用接口(如Runnable接口)或消息总线库对线程事件进行“订阅”,这些事件称为“回调” “观察者模式”大体上是需要研究的。或“发布-订阅”(与任何

我是线程新手,但我需要使用线程才能使javafx应用程序正常工作。我的问题是,我需要在我的程序中执行大量计算,并在其间定期更新UI。我知道在javafx线程中进行计算会阻止UI更新,因此我需要将该工作转移到另一个线程


我需要知道的是,因为我以前从未使用过线程,所以定期启动该线程、执行部分计算并将结果发送回javafx线程的最佳方式是什么

通常,您使用接口(如Runnable接口)或消息总线库对线程事件进行“订阅”,这些事件称为“回调”

“观察者模式”大体上是需要研究的。或“发布-订阅”(与任何库或工具(如Google PubSub)无关)

RxJava围绕这一点公开了一些好的模式,但可能比必要的更复杂


周期性结果需要一个类似计时器的对象,但想法是一样的

你能说得更具体一些吗,例如,举一个简单的例子说明你想做什么?首先看一些相关的例子,而不是对其工作原理的一般描述,可能更容易了解这一点,对于这个问题的一个很好的答案,按照目前的措辞,基本上需要一个关于多线程的完整教程。这将在后台计算结果,并发布临时结果供监听GUI显示。该程序基本上是生活游戏的一个实现,我要做的是渲染画布,显示单元格的状态,等待一段时间,然后更新单元格并再次渲染画布。不过,我已经能够使用预定的executor服务来完成这项工作,所以我想我问得太快了。您是否可以使用
动画计时器来完成这项工作?那你就根本不需要线程了。看起来是个不错的选择,我不知道这个类存在。我对我的解决方案很满意,因为它完成了它的工作,但也许我会尝试用它重新编写代码,使它更清晰。