Platform.RunLater就像基于JFXAT PlatformImpl的行为线程imeplementation一样投入工作

时间:2016-08-24 14:40:48

标签: java multithreading javafx

所以我决定创建自己的平台 PlatformImpl 就像实现一样,基本上避免在不应该出现的情况下出现密集的同步和同步问题需要,我的要求是我有一个线程,我可以从JFXAT或我碰巧在的其他线程投入工作。我现在做什么它从JFXAT创建线程,当用户必须从用户数据库中删除一些东西时输入,然后反映模型等的这种变化,因为我不希望我的通信发生在JFXAT上。

我是否会对此感到茫然?我喜欢JavaFX和swing有专门的线程你刚刚投入工作,你不必指望任何问题,我创建线程的东西真的只需要一个线程,其中作业队列将根据需要不断执行。优选地,FIFO结构在范围内。

对此已有优雅的解决方案吗?标准java中的一些API,我不知道? 当我想要执行我的问题的应用程序逻辑时,我没有真正的地方可以做到这一点,我创建了大量的线程或在JFXAT上执行(轻量级任务没有重/芽可能会改变)和我'我一直担心同步并被迫使用线程安全集合,我知道这是非常愚蠢的问题,我倾向于在我的设计中使事情过于复杂。

1 个答案:

答案 0 :(得分:2)

执行者似乎符合您的需求。

更确切地说,您描述了Executors.newSingleThreadExecutor()返回的ExecutorService种类。

示例:

private final ExecutorService executor = Executors.newSingleThreadExecutor();

public void runLater(Runnable runnable) {
    executor.execute(runnable);
}