¿Es posible hacer una bifurcación “C like” en Java, usando un nuevo proceso jvm independiente?
¿Cómo?
sakana
¿Es posible hacer una bifurcación “C like” en Java, usando un nuevo proceso jvm independiente?
¿Cómo?
usuario525362
Esta respuesta es probablemente un poco tarde, pero:
parece ser exactamente lo que buscas
parece que realmente no se bifurca, pero los nuevos procesos secundarios de exec brindan algunos beneficios como fork.
– rogerdpack
23 de diciembre de 2011 a las 0:07
Tenga en cuenta que solo funciona en un sistema similar a POSIX (más o menos todo menos Windows)
– Carlos B
18 de enero de 2012 a las 15:41
Puede leer el código fuente de Akuma y usar la API posix usando JNA como lo hace Akuma.
– Arnaud
15 de febrero de 2017 a las 14:54
Si bien esto puede responder teóricamente a la pregunta, sería preferible incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia.
– Ferrygrande
2 de julio de 2017 a las 10:03
Filho
Curiosamente, solo estoy trabajando en esto: un proceso de Java que ejecuta otros procesos de Java. usé el artículo De Runtime.exec() a ProcessBuilder como base sólida y Cuando Runtime.exec() no como un buen consejo sobre cómo engullir los flujos de salida.
PD: Para aquellos que se preguntan, tuve que hacer eso (en lugar de generar nuevos subprocesos) porque otro proceso de Java está verificando la presencia de estos procesos que, normalmente, se ejecutan por separado con comandos de shell.
Esos solo se refieren a Runtime.exec()
que es MUY diferente de poder controlar explícitamente al niño después de un fork()
.
–Volker Stolz
9 de octubre de 2012 a las 7:51
¿Puede actualizar la respuesta y corregir el enlace para ProcessBuilder?
– Jatin Kumar
18 de junio de 2015 a las 6:18
el enlace esta caido 🙁
– Raúl Sharma
10 mayo 2018 a las 10:13
Esta es una respuesta antigua, pero si aún desea obtener la información, use Wayback Machine para acceder a estos artículos antiguos. ¿O buscar otros más nuevos?
– Filho
11 de mayo de 2018 a las 10:23
los API de aislamiento de aplicaciones (JSR 121) presenta Isolate
que aborda este caso de uso.
Por lo que puedo ver, la API de aislamiento no es compatible con el JDK actual (1.8). Hay un proyecto experimental de MVM (Máquina virtual multitarea) que lo hace, pero no encontró su camino en la línea principal. Además, me parece que la API de aislamiento no permite hacer una bifurcación, donde el estado del proceso de bifurcación se clona en el niño: por lo que pude entender, el aislamiento comienza con un método principal y (por supuesto ) diferentes aislamientos no comparten estado.
– Pietro Braione
15/10/2014 a las 12:23
¿Tal vez podría entrar en más detalles sobre lo que está tratando de lograr? Como se mencionó, puede ejecutar () otro proceso, que podría ser otra instancia de la JVM, pero eso no le brinda el mismo estado compartido que fork () en C. Por otro lado, puede ejecutar subprocesos, pero allí se comparte más de lo que lo haría con fork().
–Mark Bessey
13 de noviembre de 2008 a las 17:56
Simplemente quiero evitar el intercambio que implica el hilo. Gracias por tu preocupación 🙂
– sakana
14 de noviembre de 2008 a las 13:42