我想知道在Java中是否有可能创建多个进程(是的,进程,而不是线程)来执行一些并行工作。例如,要计算五个正方形的表面,但每个正方形的计算必须在单独的过程中完成。它应该使用forking进程,但我不熟悉Java中的并发性,所以我真的不知道如何做这些事情。如果您可以向我解释这一点,或者将我指向那个地方或书籍,我将非常感激。我已经看过许多用于并发的Java书籍,但仅适用于线程而非进程。
答案 0 :(得分:2)
您可以使用ProcessBuilder类或较旧的Runtime.exec方法启动进程。在Unix系统上,这些使用fork和exec函数。您可以在此处找到ProcessBuilder的文档,其中包含一个示例:http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
可能您还想知道两个进程如何相互通信,以便可以恢复计算结果。这里有太多选项可供讨论。流行的是管道,TCP套接字,内存映射文件和消息队列。