我想在 Scala 中将反射与并行处理结合使用,但我被 reflection's lack of thread safety 所困扰。 。 因此,我正在考虑在自己的进程(而不是线程)中运行每个任务。 有什么简单的方法可以做到这一点吗?
例如,有没有办法配置 .par
以便它生成进程,而不是线程?或者是否有一些函数 fork
接受闭包并在新进程中运行它?
编辑: future 显然是一个好方法。 但是,我仍然需要弄清楚如何在单独的进程中运行它们。
编辑2:即使使用Akka的“fork-join-executor”调度程序,我仍然遇到并发问题,这听起来确实应该是 fork 进程。但是,当我在 Future 中运行 ManagementFactory.getRuntimeMXBean().getName()
时,似乎所有内容仍然存在于同一个进程中。
这是检查实际进程级并行性的正确方法吗?
我使用的是正确的 Akka 调度程序吗?
编辑3:我意识到反射(reflection)很糟糕。不幸的是它被用在我需要的库中。
最佳答案
关于scala - Scala 中的进程级并行性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578731/