我想在Scala中结合使用反射和并行处理,但我被reflection's lack of thread safety咬了。 所以,我正在考虑在自己的进程中运行每个任务(而不是线程)。 有没有简单的方法呢?
例如,有没有办法配置.par
所以它产生进程,而不是线程?或者是否有一些函数fork
采用闭包并在新进程中运行它?
编辑2:即使使用Akka的“fork-join-executor”调度程序,我仍然遇到并发问题,这听起来确实应该是分叉进程。但是,当我在期货中运行ManagementFactory.getRuntimeMXBean().getName()
时,似乎所有东西仍然存在于同一个过程中。
这是检查实际进程级并行性的正确方法吗?
我使用正确的Akka调度员吗?
编辑3:我意识到反思很糟糕。不幸的是,它被用在我需要的库中。