Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Juniorjavajava en 11 de Octubre 2015, 02:08

Título: Diferencia entre proceso e hilo Java Process y Thread Problema multiproceso
Publicado por: Juniorjavajava en 11 de Octubre 2015, 02:08
Buenas, pues necesito ayuda con un ejercicio que no se ni como empezar, el ejercicio es este:

Se va a desarrollar una solución multiproceso al problema de sincronizar y comunicar dos procesos hijos creados a partir de un proceso padre. La idea es escribir una clase Java que ejecute dos comandos (cada hijo creado ejecutará uno de ellos) con sus respectivos argumentos y redireccione la salida estándar del primero a la entrada estándar del segundo. Por sencillez, los comandos y sus argumentos irán directamente escritos en el código del programa para no complicar demasiado el problema. Por ejemplo, se pueden utilizar los comandos dir, que muestra una lista de archivos y subdirectorios en un directorio; y sort, que ordena los resultados de un comando seleccionado, por ejemplo los resultados de una búsqueda con find, aunque en el presente caso ordenará los resultados obtenidos con dir.

Tambien debo decir que vengo del siguiente  post:

https://www.aprenderaprogramar.com/foros/index.php?topic=1442

Ahi lo solucionan con hilos , pero a mi me gustaria saber la manera de solucionarlo sin hilos.Es decir , solucionarlo con la clase Process y Streams etc...(cualquier manera pero sin hilos)

Gracias de antemano, ;D
Título: Re:Diferencia entre proceso e hilo Java Process y Thread Problema multiproceso
Publicado por: Alex Rodríguez en 13 de Octubre 2015, 08:50
Hola en la documentación java podemos leer esto: In concurrent programming, there are two basic units of execution: processes and threads. In the Java programming language, concurrent programming is mostly concerned with threads.

En programación concurrente, hay dos unidades básicas de ejeución: procesos e hilos. En el lenguaje de programación Java, la programación concurrente se desarrolla principalmente a través de hilos (threads).

Referencia: https://docs.oracle.com/javase/tutorial/essential/concurrency/procthread.html

En el enunciado de problema que nos indicas, parece que se pretende ejecutar comandos del sistema a través de Java. Para eso te recomiendo que sigas las explicaciones de estos artículos (está en inglés): http://alvinalexander.com/java/java-exec-processbuilder-process-1

Si vas generando código puedes irlo pegando como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 para consultar u obtener ayuda, ten en cuenta que en los foros tratamos siempre de ayudar a partir del código que se haya intentado desarrollar.

Saludos