Está en la página 1de 6

FORO U1

DESARROLLO DE APLICACIONES (MSC G9B)


ROBERTO IVAN SANTIAGO HERNANDEZ MATRICULA A0123111915
 Aspecto 1: ¿Cuáles son los beneficios de utilizar el subprocesamiento múltiple (threads) en
el desarrollo programas para las organizaciones?

Un solo hilo es básicamente un peso ligero y la unidad de procesamiento más pequeña. Java usa
subprocesos utilizando una “clase de subprocesos”.
Hay dos tipos de subprocesos: subproceso de usuario e hilo de demonio (los subprocesos de daemon se
utilizan cuando queremos limpiar la aplicación y se utilizan en segundo plano).
Cuando una aplicación comienza por primera vez, se crea el hilo de usuario. Publica eso, podemos crear
muchos hilos de usuario e hilos daemon.
El subprocesamiento múltiple en Java es un proceso de ejecución de dos o más subprocesos
simultáneamente para una utilización máxima de la CPU.
Ventajas de subprocesamiento múltiple:
1. Los usuarios no están bloqueados porque los hilos son independientes, y podemos realizar varias
operaciones a veces
2. Como tal, los hilos son independientes, los otros hilos no se verán afectados si un hilo cumple una
excepción.

El ciclo de vida de un hilo:


Hay varias etapas del ciclo de vida del hilo como se muestra en el diagrama de arriba:
1. Nuevo: en esta fase, el hilo se crea utilizando la clase “Clase de hilo”. Permanece en este estado
hasta que el programa inicia el hilo. También se conoce como hilo nacido.
2. Runnable: en esta página, la instancia del hilo se invoca con un método de inicio. El control de
subproceso se le da al planificador para finalizar la ejecución. Depende del planificador, si ejecutar
el hilo.
3. En ejecución: cuando el subproceso comienza a ejecutarse, el estado cambia al estado “en
ejecución”. El programador selecciona un hilo del grupo de subprocesos y comienza a ejecutarse
en la aplicación.
4. Esperando: este es el estado cuando un hilo tiene que esperar. Como hay varios subprocesos
ejecutándose en la aplicación, existe una necesidad de sincronización entre los subprocesos. Por
lo tanto, un hilo tiene que esperar, hasta que se ejecute el otro hilo. Por lo tanto, este estado se
conoce como estado de espera.
5. Muerto: este es el estado cuando termina el hilo. El subproceso está en estado de ejecución y, tan
pronto como finaliza el procesamiento, se encuentra en “estado muerto”.
 Aspecto 2:

Implemente un programa que escriba un “hola mundo” por cada hilo de ejecución que se cree (seis
es un número razonable) y que además indique desde que hilo se imprime. Luego haga que cada
uno espere un tiempo proporcional a su identificador antes de imprimir el mensaje (el thread 1, un
segundo, el 2, dos segundos, el 3, tres segundos,…). Lance los threads mediante la clase Thread y
luego mediante el interfaz Runnable ¿Qué diferencias aprecia?

package dau1a2;
/**
*
* @author ROBERTO IVAN SANTIAGO HERNANDEZ
* MATRICULA:= A0123111915
* UNIVERSIDAD DA VINCI
* Desarrollo de Aplicaciones (MSC G9b)
*/
public class MiHilo extends Thread {
int id;

public MiHilo(int i, String N){


super(N);
this.id=i;
}

@Override
public void run() {
try {
// thread to sleep for 1000 milliseconds
Thread.sleep(1000 * id);
System.out.println(getName() + " Hola Mundo");
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
package dau1a2;
/**
*
* @author ROBERTO IVAN SANTIAGO HERNANDEZ
* MATRICULA:= A0123111915
* UNIVERSIDAD DA VINCI
* Desarrollo de Aplicaciones (MSC G9b)
*/
public class HolaMundoHilos {
/**
* @param args the command line arguments
*/
public static void main(String[] args){
new MiHilo(1,"H1").start();
new MiHilo(2,"H2").start();
new MiHilo(3,"H3").start();
new MiHilo(4,"H4").start();
new MiHilo(5,"H5").start();
new MiHilo(6,"H6").start();
}
}

Pantalla de Salida:
 Aspecto 3: 
Resuelve el siguiente ejercicio relacionado con el lenguaje de programación orientada a
objetos:

Given:
1.
2.
3. class MyThread extends Thread {
4. public static void main(String [] args) {
5. MyThread t = new MyThread();
6. Thread x = new Thread(t);
7. x.start();
8. }
9. public void run() {
10. for(int i=0;i<3;++i) {
11. System.out.print(i + "..");
12. }
13. }
14. }
What is the result of this code?
A. Compilation fails
B. 1..2..3..
C. 0..1..2..3..
D. 0..1..2..
E. An exception occurs at runtime
Respuesta es D
Pantalla de Salida

Referencias
spoint, t. (s.f.). tutorial spoint. Recuperado el 14 de Octubre de 2019, de
https://www.tutorialspoint.com/java/lang/thread_sleep_millis.htm

Sznajdleder, I. P. (2013). Java a fondo. En I. P. Sznajdleder, Java a fondo (pág. 456). Buenos Aires: Alfaomega.
Recuperado el 14 de Octubre de 2019, de
https://drive.google.com/file/d/0B3HO4bFukw7QUkJHOGxaS3Q1dnM/view

Tutorial, R. (s.f.). Rip Tutorial. Recuperado el 2019 de Octubre de 2019, de https://riptutorial.com/es/multithreading

También podría gustarte