Processi paralleli Java con fork


Mi chiedevo se fosse possibile in Java creare più processi (sì, processi, non thread) per eseguire alcuni lavori paralleli. Ad esempio, per calcolare la superficie di cinque quadrati, ma che il calcolo per ogni quadrato deve essere fatto in processo separato. Si suppone che usi la biforcazione dei processi, ma sono nuovo alla concorrenza in Java, quindi non so davvero come fare quelle cose. Se potessi spiegarmi questo, o indirizzarmi al posto o al libro che lo fa, ti sarei molto grato. Mi ho visto molti libri Java per la concorrenza, ma solo per thread e non processi.

Author: Tshepang, 2013-03-24

1 answers

È possibile avviare i processi utilizzando la classe ProcessBuilder o il Runtime precedente.metodo exec. Sui sistemi Unix questi usano le funzioni fork ed exec. Troverai la documentazione di ProcessBuilder qui, include un esempio: http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Probabilmente vorrai anche sapere come due processi possono parlare tra loro in modo che i risultati del calcolo possano essere recuperati. Ci sono troppe opzioni per discutere qualsiasi a lungo qui. Quelli popolari sono pipe, socket TCP, file mappati in memoria e code di messaggi.

 2
Author: Joni, 2013-03-23 21:49:19