Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad 2. Hilos
Asignatura:
Programacin orientada a objetos III
Unidad 2. Hilos
Clave:
16142524
Unidad 2. Hilos
ndice
PRESENTACIN DE LA UNIDAD ........................................................................................................................ 3
PROPSITOS DE LA UNIDAD ............................................................................................................................ 3
COMPETENCIA ESPECFICA ............................................................................................................................... 3
TEMARIO DE LA UNIDAD.................................................................................................................................. 3
UNIDAD 2. HILOS ............................................................................................................................................. 4
TEMA 2.1. PROGRAMAS CON FLUJO NICO ..................................................................................................... 4
TEMA 2.2. PROGRAMAS DE FLUJO MLTIPLE .................................................................................................. 6
CIERRE DE LA UNIDAD.....................................................................................................................................12
PARA SABER MS .........................................................................................................................................13
FUENTES DE CONSULTA ..................................................................................................................................13
Unidad 2. Hilos
Presentacin de la unidad
Existen ocasiones en las que la ejecucin de un programa requiere de procesamiento
paralelo, es decir que el programa realice diferente tareas al mismo tiempo, para ello existen
hilos de ejecucin, los cuales permiten ese procesamiento multitarea (o multi-hilo) del que
hablamos.
En esta segunda unidad de la materia Programacin orientada a objetos III (POO3),
revisars la diferencia entre programas con flujo nico y mltiple, as como el uso de hilos
para crear programas con mltiples flujos de procesamiento. Estos temas sern tratados
para adentrarte en la programacin multi-hilos y con ello logres crear programas con
funciones que se ejecuten de forma paralela.
Propsitos de la unidad
En esta unidad logrars:
Diferenciar el flujo de ejecucin de un programa.
Distar el flujo nico del flujo mltiple de ejecucin de un programa.
Crear y manipular hilos.
Competencia especfica
Crear programas mediante la utilizacin de hilos para el manejo de flujos mltiples de
informacin.
Temario de la unidad
2. Hilos
2.1. Programas con flujo nico
2.1.1. Flujo normal
2.1.2. Ejemplo de un programa con flujo nico
2.2. Programas de flujo mltiple
2.2.1. Creacin de hilos
2.2.2. Estados de hilos
2.2.3. Control de hilos
Unidad 2. Hilos
2. Hilos
Los hilos en programacin, bsicamente, son procesos de ejecucin, de tal manera que si
se programan varios hilos en una sola aplicacin; sta ser capaz de realizar varias tareas
de manera paralela, por lo que este tema resulta de sobremanera til cuando se deban
realizar programas con una gran carga de procesamiento de informacin. A lo largo de esta
unidad siguiendo las lecturas y ejercicios propuestos analizars el manejo de hilos en Java.
Por lo anterior, es importarte que atiendas a las indicaciones posteriores, pues, tendrs que
revisar textos, ejecutar tareas y, al final, realizar tu evidencia de aprendizaje, misma que
dar cuenta de la obtencin de la competencia de la unidad. Dicho lo anterior, entrars en
materia con el tema 2.1. Programas con flujo nico.
Unidad 2. Hilos
interfaz grfica sugerida se puede ver en la Figura. Programa de flujo nico con impresin
de nmeros.
Ejemplo de cdigo 1. Impresin de nmeros en programa de flujo nico.
private void btnEjecutarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String texto="";
for(int i=0; i<100; i++){
texto+=i+"\n";
txaImpresion.setText(texto);
}
}
Unidad 2. Hilos
Unidad 2. Hilos
encontrar todo el aspecto tcnico con respecto al manejo de hilos, slo debers moverte en
el men para revisar temas ms avanzados.
Ahora, revisa el Tema 9.2 Extensin de la clase thread de Programador Certificado Java 2,
en Martin, (2010, p. 397) donde podrs ver cmo crear un hilo, as como los mtodos ms
utilizados para manejarlos, estudiando este texto y analizando el cdigo que presentan
logrars tener una visin ms concreta sobre cmo programar con hilos; se recomienda que
crees los programas con los bloques de cdigo presentados en esta obra para que vayas
comprendiendo y practicando al mismo tiempo.
Para finalizar y despus de que revisaste los textos sugeridos sobre el tema de hilos, se
presenta un ejemplo de cmo crear y manipular hilos en un programa Java, es
recomendable que realices tu propio programa basndote en la sintaxis que se muestra en
el ejemplo, todo ello para que analices a profundidad el cdigo y logres aplicarlo en las
actividades que realizars para este tema.
El cdigo est comentado, sigue los comentarios cuidadosamente para que comprendas el
cdigo presentado.
Ejemplo de cdigo 1. Clase para el uso de hilos
1 /**
2
mtodo run.
*/
10
11
12
13
14
Unidad 2. Hilos
15
16
/**
17
18
19
*/
20
public HiloMensaje()
21
{
this ("Hilo sin nombre");
22
23
24
25
/**
26
27
28
el hilo.
29
*/
30
31
{
nombreHilo = nombre;
corriendo = false;
32
33
34
/**
*
Devuelve el valor de la variable
*
nombreHilo.
*/
public String getNombre()
{
return nombreHilo;
}
35
36
37
38
39
40
/**
*
*
Unidad 2. Hilos
41
*
se deben escribir las instrucciones que se desean ejecutar
*
como un hilo paralelo.
*/
@Override
public void run()
{
//Esta variable servir para llevar un conteo de las veces que se itera
//el ciclo while ms abajo.
int i = 0;
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
*
Sirve para saber si actualmente el hilo esta en ejecucion.
*/
public boolean estaCorriendo()
{
return corriendo;
}
55
56
57
58
59
/**
*
Sirve para forzar un hilo a detenerse.
*/
public void detener()
{
corriendo = true;
}
60
61
62
63
}
64
65
66
Unidad 2. Hilos
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
1 /**
2
*/
10
Unidad 2. Hilos
6 {
7
/**
10
11
*/
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//continan su ejecucin.
26
Thread.currentThread().sleep(2000);
27
System.exit(0);
28
29
30 }
11
Unidad 2. Hilos
Para concluir este tema, realiza la Actividad 1. Flujo nico VS flujo mltiple que se presenta
en el documento: Actividades de la unidad, donde debers distinguir el flujo nico del flujo
mltiple de ejecucin.
Por otra parte en la Actividad 2. Programa multi-flujo. Crears un programa que presente
flujo mltiple de ejecucin.
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
segunda unidad del curso, es necesario que resuelvas la autoevaluacin de la unidad.
Para realizar esta Actividad, abre tu archivo de Actividades de la unidad.
Para concluir la unidad debers realizar la Evidencia de aprendizaje. Programa con hilos de
esta unidad, la cual tiene como objetivo que realices un programa en Java que muestre el
uso y manipulacin de hilos.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al
foro Preguntas de Autorreflexin y consultes las preguntas que tu Docente en lnea
presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado
DPO3_U2_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.
Cierre de la unidad
Has concluido la segunda unidad de la asignatura. A lo largo de esta unidad te has
introducido en los conceptos de flujo nico y mltiple de ejecucin de tal manera que has
distinguido el uso de hilos para generar programas que manejen varios procesos de
ejecucin de forma paralela, tambin has estudiado las clases que Java proporciona para
ese manejo de flujos mltiples mediante hilos. Por ltimo, en el desarrollo de la unidad, has
estudiado la manera de lograr la manipulacin de hilos de ejecucin. Por su parte, en la
siguiente unidad, aprenders a realizar programas que trabajen en red (es decir en ms de
una computadora), estos programas pueden requerir de utilizar diferentes hilos de ejecucin
en su codificacin.
Es aconsejable que revises nuevamente la unidad en caso de que los temas que se acaban
de mencionar no te sean familiares o no los recuerdes, de no ser este tu caso, ya ests
12
Unidad 2. Hilos
preparado(a) para seguir con la unidad tres, en donde continuars con la revisin del uso de
sockets.
Para saber ms
Para que puedas ejecutar los programas que se te presentan, as como las actividades es
importante que instales un IDE en tu computadora, se recomienda NetBeans, puedes
descargarlo de forma gratuita de la siguiente liga: http://netbeans.org/downloads/
Es recomendable que pruebes los cdigos que se presentan en los ejemplos que se
encuentran en cada fuente de consulta mencionada.
Fuentes de consulta
13