Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EN DESARROLLO DE SOFTWARE
UNIDAD 2: Hilos
ACTIVIDAD 2: Flujos Únicos y Múltiples
SEM. 2020-
ÍNDICE:
ÍNDICE: ................................................................................................................................................................................... 2
INTRODUCCIÓN ..................................................................................................................................................................... 2
ACTIVIDADES ......................................................................................................................................................................... 2
BIBLIOGRAFÍA ........................................................................................................................................................................ 7
INTRODUCCIÓN
El trabajo que mostraré a continuación contiene un breve resumen del concepto de Hilos (threads) en
informática, desde como implementarlos, ventajas y desventajas, hasta cuáles son sus funciones dentro de un
sistema computacional.
A su vez, también resolveremos una problemática y definiremos el uso de los diferentes flujos: únicos y
múltiples para realizar tareas, sus ventajas, desventajas, descripción y algunos ejemplos. Al final describiremos
la diferencia entre dichos flujos para entender en qué consisten y cuál será la manera correcta de ejecutarlos,
saber cuál elegir para nuestro programa y cuál funcionaría mejor para un sistema estándar.
ACTIVIDADES
1. Menciona y realiza un análisis de 5 criterios del código de ética para estudiantes de la UnADM, reglamento
escolar vigente y criterio generales para la recepción y evaluación de actividades del programa educativo
publicado la plataforma.
2. Realiza una investigación descriptiva de los hilos de programación (creación de hilos, ventajas y desventajas,
uso y ejemplos)
2
HILOS DE PROGRAMACIÓN.
En sistemas operativos, un hilo o hebra (del inglés thread), proceso ligero o subproceso es una secuencia de tareas
encadenadas muy pequeña que puede ser ejecutada por un sistema operativo. Un hilo es simplemente una tarea que
puede ser ejecutada al mismo tiempo que otra tarea.
CREACIÓN DE HILOS
Para crear un hilo, es posible establecer la palabra thread, el cual puede heredar propiedades empleando dentro de
la clase un extends, puede contener constructores dentro de sus métodos y estos pueden ser llamados en la clase
Main, empleando métodos start() para establecer el proceso y métodos start() para dar inicio al proceso.
VENTAJAS
1. Los hilos pueden estar encaminados a uno o diversos objetivos en el software a desarrollar
2. Permite agilizar procesos de ejecución en sistema
3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.
4. Los hilos aumentan la eficiencia de la comunicación entre programas en ejecución. En la mayoría de los
sistemas en la comunicación entre procesos debe intervenir el núcleo para ofrecer protección de los
recursos y realizar la comunicación misma. En cambio, entre hilos pueden comunicarse entre sí sin la
invocación al núcleo. Por lo tanto, si hay una aplicación que debe implementarse como un conjunto de
unidades de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que con una
colección de procesos separados.
DESVENTAJAS
1. A medida que se van desarrollando más hilos para realizar diversas funciones, estos pueden llegar a afectar
al tiempo de ejecución.
2. Consume más recursos y puede tardar unos momentos en realizar dicho proceso, además de que cada vez
se establece un código más complejo.
EJEMPLOS
El siguiente ejemplo es parecido al “holamundo” clásico de la programación, pero esta vez implementando hilos
(threads).
3. Realiza una investigación descriptiva del flujo múltiple, que contenga ventajas, desventajas y ejemplos.
3
FLUJO MÚLTIPLE
Su forma de uso es muy similar a lo que conocemos como polimorfismo, en el que puede heredar acciones en el
cual puede determinarse diversas ejecuciones con start() a pesar que solo exista un solo método con run(), como en
el resto de la aplicación de hilos pueden usarse, los métodos de instancia y métodos de clase, tales como
currentThread, yield, sleep, así como se encuentra la implementación del run y el start, también puede definirse la
instancia stop,suspend, resume, setpriory, entre otros.
VENTAJAS
1. Permite que diversos procesos y tareas se puedan ejecutar al mismo tiempo.
2. Algunos de estos pueden heredar propiedades de otros o aplicándolos de manera simultánea
DESVENTAJAS
1. A medida que se establecen más hilos, el software tiende a hacerse más complejo.
2. Aún cuando se emplea los hilos múltiples pueden llegar a consumir más CPU
EJEMPLOS
}
public class LanzaHilos {
/**
* @param args
*/
public static void main(String[] args) {
int NUM_HILOS=500;
EjecutorTareaCompleja op;
for (int i=0; i<NUM_HILOS; i++)
4
{
op=new EjecutorTareaCompleja ("Operacion "+i);
Thread hilo=new Thread(op);
hilo.start();
}
}
}
4. Identifica de la problemática y realiza una tabla donde los clasifiques los flujos únicos y múltiples las entradas y
salidas.
Problemática a resolver
Al área de sistemas en donde trabajas le solicitan un proyecto informático para dar respuesta a la siguiente situación:
El estacionamiento “En buenas manos” ubicado en la Ciudad de México, cobra por la primera hora $ 45.00 pesos y $ 5.00
pesos extra cada 20 minutos adicionales, el estacionamiento cuenta con tres niveles y cada nivel tiene 15 cajones, en cada
nivel hay 4 acomodadores que se encargan de recibir el vehículo y registrar la información, así como un administrador que
se encarga de generar un boleto con un numero secuencial, la información provista del vehículo y el nombre del
acomodador para el cobro y cualquier aclaración.
Marca
Modelo
Color
Placas
Condiciones del vehículo
Actualmente este proceso se hace en una hoja de cálculo de Excel por lo que no tienen un control preciso de los cajones
disponibles ni de los acomodadores.
El administrador revisa en su tabla los cajones disponibles y marca no disponible y le indica al acomodador, el nivel y el
cajón para estacionar el vehículo e imprimí un boleto que lleva el modelo, placas, fecha y la hora de entrada, numero
secuencial y nombre del acomodado.
Cuando el cliente recoge el vehículo entrega el boleto al administrador y esté registra la hora de salida y calcula la cantidad
a pagar, solicita al acomodador que entregue el vehículo.
Una vez entregado el vehículo, el administrador marca en su tabla cajón “disponible” cada semana se requiere un informe
para identificar a los 5 acomodadores que más trabajaron.
El dueño desea que todos estos procesos se realicen en un sistema informática para llevar el control más preciso y a su vez
estar monitoreando el negocio.
5
TABLA.
Flujos Únicos Flujos Múltiples Entradas Salidas
1. Cobro de $45.00 MXN 1. Implementación del 1. Ingresar marca, modelo, 1. Obtener el boleto con la
por hora y $5.00 MXN extra costo para cada nivel y color, placas, condiciones información del vehículo,
por cada 20 minutos determinados para los 15 del vehículo, fecha y hora datos del acomodador,
adicionales. cajones por cada nivel. de entrada. cantidad a pagar.
2. Registro de los datos de 2. Todos los procesos del 2. Datos de la persona que 2. Mostrar el número de
los acomodadores. flujo único relacionados en acomoda el vehículo. acomodadores por cajones.
un único sistema para
3. Creación del boleto con control más preciso. 3. Marcación de entrada de 3. Mostrar los 5
número único. un cajón que se encuentre acomodadores que más
disponible. labores han realizado, los
4. Empleado con más más trabajadores.
servicio aumentará su
sueldo 15% más en el pago 4. Informe del acomodador,
semanal. nombre del acomodador,
cantidad de servicios
realizados por día, sueldo a
pagar semanalmente,
aumento en el sueldo y
cantidad final a pagar.
5. Redacta una descripción propia de por menos 10 renglones y menciona la diferencia entre el flujo único y el múltiple.
El flujo único es aquel que se caracteriza por que puede desarrollar procesos secuenciales y en consecuencia puede
emplear un método run () que es el que tendrá las operaciones, restricciones o actividades que serán ejecutadas e incluidas
en el programa; asimismo pueden ser llamados en la clase Main y ser iniciados a través de métodos start(), en el cual para
finalizarse se puede ejecutar la sentencia return. Otra de sus diferencias es que en el caso de un flujo único pueden enlazar
diferentes procesos en el cual se puedan ejecutar al mismo tiempo para poder realizar tareas de manera simultánea y
obtener resultados diferentes o actualizar datos mientras se utilizan otros a la vez. Los flujos múltiples son más eficientes
que los flujos únicos (aunque estos sean más rápidos de ejecutar) pero dicha eficiencia tiene como coste el consumo de
más recursos de procesador. Los flujos múltiples contienen a su vez flujos únicos que se ejecutan al mismo tiempo
permitiendo al programa realizar una multitarea que facilita y agiliza las labores del usuario, pero como ya mencionamos
su arquitectura es más compleja y para que puedan ejecutarse de mejor manera el CPU debe tener mayor potencia de
cómputo (más teraflops, cálculos de punto flotante).
6
CONCLUSIÓN
Los hilos en la programación permiten establecer acciones con el menor coste de recursos posible, a su vez que
nos permiten desempeñar diferentes tareas al mismo tiempo para agilizar la experiencia del usuario. Los hilos pueden
heredarse e implementarse desde el método principal (MAIN) por lo que se genera una serie de procesos que pueden ser
de flujo único, es decir, que se ejecutan desde el principio hasta finalizar, o flujo múltiple que puede ejecutar procesos de
manera simultánea, pueden iniciarse con start() y llamarse desde la clase principal.
BIBLIOGRAFÍA
Brookshear, J. Glenn (2012). Computer Science: An overview [Introducción a la computación] (11.ª edición). Madrid,
España: Pearson Educación, S. A. p. 704.
Joyanes Aguilar, Luis (2013). Fundamentos generales de programación (1.ª edición). Ciudad de México, México: McGraw
Hill. p. 368.
William Stallings. Operating Systems: Internals and Design Principles. Pearson Education.