【发布时间】:2019-03-17 02:46:04
【问题描述】:
javaFX 是否限制了它的最大线程数?
我做了一个javaFX演示:
https://gist.github.com/arnesacnussem/a049f0761c0db9844d19e2d639dcccff
它的目的是使用Service 来创建updateValue() 的动画
每个AutoMoveCircle 有3 个service,
在第 23 行,我创建了 20 个,但其中只有 10 个出现在 pane
每个服务都有自己的线程,只有31个服务线程
还有一个JavaFX Application Thread,所以总共有32个线程。
有限制吗?我该如何改变呢?
【问题讨论】:
-
请注意
Service有一个executor属性,您可以设置它以使其使用您自己的Executor并拥有更多线程数。 -
@Slaw 这比创建一个新的线程池要好得多,alos 可以让我不关注 fx 线程结束后留下的那些线程。谢谢
-
我确实建议使用
AnimationTimer而不是几个服务:只需根据上次更新时间与传递给handle方法的时间之间的差异检查是否需要更新。只要您不添加任何更昂贵的更新,这应该没有任何问题。此外,它避免使用大量线程+同步,这可能会给 javafx 应用程序线程带来更大的压力,而不是简单地在应用程序线程上进行所有计算我描述的方式。
标签: java multithreading javafx