2013-03-23 16 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套接字,內存映射文件和消息隊列。