scala - Scala 中的进程级并行性

标签 scala concurrency akka

我想在 Scala 中将反射与并行处理结合使用,但我被 reflection's lack of thread safety 所困扰。 。 因此,我正在考虑在自己的进程(而不是线程)中运行每个任务。 有什么简单的方法可以做到这一点吗?

例如,有没有办法配置 .par 以便它生成进程,而不是线程?或者是否有一些函数 fork 接受闭包并在新进程中运行它?

编辑: future 显然是一个好方法。 但是,我仍然需要弄清楚如何在单独的进程中运行它们。

编辑2:即使使用Akka的“fork-join-executor”调度程序,我仍然遇到并发问题,这听起来确实应该是 fork 进程。但是,当我在 Future 中运行 ManagementFactory.getRuntimeMXBean().getName() 时,似乎所有内容仍然存在于同一个进程中。 这是检查实际进程级并行性的正确方法吗? 我使用的是正确的 Akka 调度程序吗?

编辑3:我意识到反射(reflection)很糟糕。不幸的是它被用在我需要的库中。

最佳答案

你研究过Scala吗ActorsAkka ?使用 Scala 可能没有比并行和异步编程更令人信服的理由了。它已融入语言中。看看这些设施。我很确定您会找到您需要的东西。

关于scala - Scala 中的进程级并行性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578731/

相关文章:

scala - Gatling-Value baseURL 不是 io.gatling.http.protocol.HttpProtocolBuilder 的成员

scala - 这个用于指定类型参数的 Scala 中缀语法的名称是什么?

java - 多个条目的 ConcurrentHashMap 更新

java - Callable 执行期间出现异常

scala - 如何在Play 2.0中实现特定日期的预定作业?

scala - 为具有类型成员的类型解析 `Manifest`

java - 监控程序背后的逻辑

akka - 如何在 Akka 中测试 Actor 未终止

scala - 使用 Akka 在一天中的固定时间安排任务

Java 并行性 : OpenCL/GPUs vs. 参与者/线程