【问题标题】:Can you use multi-threading in Java play framework?可以在Java play框架中使用多线程吗?
【发布时间】:2016-01-22 08:51:50
【问题描述】:

这是一个简单的问题。您是否可以像使用常规 Java 应用程序一样在 play 框架上的单独线程中有意地运行进程。我似乎找不到这个问题的答案。

我目前有一个 Java 桌面应用程序,它使用 C 语言编写的 CPU 密集型机器学习实用程序来查找图像中的特征。使用桌面上的常规 Java,我可以一次运行该实用程序的多个实例,每个实例都在自己的线程中,从而使图像处理速度更快。在具有 128 个逻辑核心的服务器上,我只需几秒钟而不是几分钟。我想重新设计我的桌面系统以允许它访问大型服务器的资源。现在我正试图找出最好的方法来做到这一点,而 Play 是我正在研究的一个选项——本质上是将系统放在网页上。

【问题讨论】:

  • 你不能在线程中运行进程。您可以从线程中调用它们。它更像是通过 Java 运行时或 ProcessBuilder 调用命令。如果您只是考虑将计算分解为多个线程或使用分布式系统来处理它
  • 我将图像分割成小块,并在每个小块上运行 C 实用程序。因此,例如,我可以将图像拆分为 8x8,并运行 64 个 C 程序实例,每个图块上一个。
  • 很好,然后将动作生成到线程中会很简单。您基本上通过构造函数创建一个新的动作对象,然后简单地执行运行。这带来了系统和内存限制。我建议你阅读这个不错的帖子programmers.stackexchange.com/questions/97615/…
  • 这种多线程处理也需要在系统/操作系统级别进行大量线程/进程处理优化。使它成为一个复杂的问题:D

标签: java multithreading playframework server


【解决方案1】:

您能否像使用常规 Java 应用程序一样,在 play 框架上的不同线程中有意地运行进程

根据“使用其他线程池”一节中的the docs,创建自己的线程池或使用java执行器池没有问题。您还可以选择使用 Play 线程池,但需要进行调整。

【讨论】:

    猜你喜欢
    • 2013-01-11
    • 2010-09-24
    • 1970-01-01
    • 2023-03-06
    • 2011-07-26
    • 2016-12-16
    • 1970-01-01
    • 2021-09-18
    • 2021-05-14
    相关资源
    最近更新 更多