2013-03-23 136 views
3

我想知道是否可以在Java中创建多个进程(是,进程,而不是线程)来完成一些并行工作。例如,要计算五个方格的表面,但每个方格的计算必须在单独的过程中完成。它应该使用分支进程,但我对Java的并发性并不熟悉,所以我不知道如何执行这些操作。如果你能向我解释这一点,或者指引我去那个地方或书籍,我会非常感激。我见过很多Java书籍用于并发,但仅限于线程而不是过程。带叉的Java并行进程

+0

什么_you_认为区别是线程和进程之间? – 2013-03-23 21:26:31

+0

版本7具有一些新功能,请阅读http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html – ddmps 2013-03-23 21:27:47

回答

2

您可以使用ProcessBuilder类或早期的Runtime.exec方法启动进程。在Unix系统上,这些使用fork和exec函数。您可以在这里找到ProcessBuilder的文档,它包含一个示例:http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

也许您还想知道两个进程如何相互通信,以便可以恢复计算结果。这里有太多的选项可供讨论。流行的是管道,TCP套接字,内存映射文件和消息队列。