我想知道是否可以在 Java 中创建多个进程(是的,进程,而不是线程)来执行一些并行工作。例如,要计算五个正方形的表面,但每个正方形的计算必须在单独的过程中完成。它应该使用进程的分叉,但我是 Java 并发的新手,所以我真的不知道如何做这些事情。如果您能向我解释这一点,或者将我引导到可以解释的地方或书籍,我将非常感激。我看过很多关于并发的 Java 书籍,但只针对线程而不是进程。
问问题
4514 次
1 回答
2
您可以使用 ProcessBuilder 类或较旧的 Runtime.exec 方法启动进程。在 Unix 系统上,它们使用 fork 和 exec 函数。您可以在此处找到 ProcessBuilder 的文档,其中包括一个示例:http ://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
可能您还想知道两个进程如何相互通信,以便恢复计算结果。有太多的选择可以在这里详细讨论。流行的是管道、TCP 套接字、内存映射文件和消息队列。
于 2013-03-23T21:38:17.260 回答