我希望实现Platform.runLater()
的功能,但在当前线程上,程序与JavaFX无关,它是Tomcat服务器。
我尝试Platform.runLater(this::foo);
,但我很确定它没有做任何事情。可能是因为没有JavaFX线程可以做到这一点。
我宁愿不打开ScheduledExecutorService
,因为它会成为许多实例上的另一个线程(这么多线程),更不用说它需要运行的方法是{{ 1}}所以我闻到了僵局。
我无法在synchronized
上找到任何有用的方法(Thread.currentThread()
和run
不参加参数)。
还有其他选择吗?
答案 0 :(得分:0)
我使用newSingleThreadExecutor来实现这一点,因为它可以将多个runnables带到队列并按顺序运行它们,它可以从几个地方给出任务并且它将逐个运行它们,它类似于{ {1}}。
有一个单独的线程,该类的所有实例都持有引用,解决了“多线程”问题。
它也不会导致死锁,因为它最多只等待另一个线程完成同步函数,然后只运行这一个函数。