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

标签 java multithreading tomcat java-8

我想实现 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/

相关文章:

java - 为什么在以下代码中执行 (referenceTos[0] != null) 检查?

java - 如何在 Eclipse 中更改 tomcat 默认部署目录?

java - Tomcat 8 - Maven + Spring + Hibernate - oracle 数据源错误

java - 无法读取网络共享文件夹上的文件[webbapp 是作为服务的 tomcat]

java - 按钮操作监听器在 Java 窗口中添加新的文本字段

java - 如何开始使用当前 GlassFish 解决方案的 Google App Engine

java.lang.NoClassDefFoundError : com/healthmarketscience/jackcess/util/ErrorHandler in ms access connectivity with java8

multithreading - Rust:允许多个线程修改图像(向量的包装)?

java - 如何使用CountDownlatch使线程按顺序工作?

python - 处理队列所必需的线程锁+Python