gpt4 book ai didi

java - RunLater 在当前线程上运行或给当前线程一个任务稍后运行

转载 作者:行者123 更新时间:2023-11-28 23:23:21 26 4
gpt4 key购买 nike

我想实现 Platform.runLater() 的功能,但在当前线程上,该程序与 JavaFX 无关,它是一个 Tomcat 服务器。

我尝试执行 Platform.runLater(this::foo); 但我很确定它不会执行任何操作。可能是因为没有 JavaFX 线程来执行此操作。

我宁愿不打开 ScheduledExecutorService 因为它将成为许多实例(这么多线程)上的另一个线程,更不用说它需要运行的方法是 synchronized 所以我闻到了死锁的味道。

我在 Thread.currentThread() 上找不到任何有用的方法(runstart 不带参数)。

还有其他选择吗?

最佳答案

我用了 newSingleThreadExecutor为了实现这一点,由于它可以将多个 runnable 放入一个队列并依次运行它们,因此可以从多个地方给它任务,它会一个一个地运行它们,它类似于 platform.runLater

拥有该类的所有实例都引用的单个线程,解决了“多线程”问题。

它也不会导致死锁,因为它最多只会等待另一个线程完成同步函数,然后只运行这个函数。

关于java - RunLater 在当前线程上运行或给当前线程一个任务稍后运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com