Está en la página 1de 7

ING.

EN DESARROLLO DE SOFTWARE

Programación Orientada a Objetos III

UNIDAD 2: Hilos
ACTIVIDAD 2: Flujos Únicos y Múltiples

DANIEL ELEAZAR FRAGOSO REYES


ES1911001091

DOCENTE: ARMADEO COPORO QUINTANA

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.

NO. CRITERIO ANÁLISIS


1 Respetar el debate y la opinión de La opinión de mis compañeros debe ser respetada pues todos pensamos
mis compañeros, docentes en diferente y no por el hecho de que opine muy diferente a su punto de
línea y de la Comunidad. vista tengo que asumir su opinión como mala o poco objetiva y menos
hacérselo saber de una manera descortés, sin tacto e irrespetuosa.
2 Conocer y observar la Las reglas se hicieron para nuestro beneficio y para tener una mejor
normatividad universitaria, entre experiencia educativa, si colaboramos respetándolas ayudamos a crear
ella, los reglamentos escolares de un ambiente sano en el medio universitario.
la Universidad.
3 Asumir con responsabilidad las Equivocarse es válido, pero cada acto posee consigo ciertas
consecuencias de mis acciones consecuencias, asumirlas y corregirnos demuestra responsabilidad.
4 Revisar periódicamente tanto Es responsabilidad nuestra y parte de nuestro compromiso revisar cada
avisos, como indicaciones que el aviso y publicación realizada por nuestro profesor.
docente publique.
5 El trabajo debe ser original, No debemos copiarnos de las actividades de otros compañeros, debemos
inédito y de propia autoría del realizar nuestras actividades nosotros mismos en base a nuestros
estudiante. conocimientos adquiridos en la unidad.

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).

public class HelloThread extends Thread


{
public void run()
{
System.out.println("Hello from a thread!");
}
public static void main(String args[])
{
(new HelloThread()).start();
}
}
// HelloThread.java

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

class EjecutorTareaCompleja implements Runnable{


private String nombre;
int numEjecucion;
public EjecutorTareaCompleja(String nombre){
this.nombre=nombre;
}
@Override
public void run() {
String cad;
while (numEjecucion<100){
for (double i=0; i<4999.99; i=i+0.04)
{
Math.sqrt(i);
}
cad="Soy el hilo "+this.nombre;
cad+=" y mi valor de i es "+numEjecucion;
System.out.println(cad);
numEjecucion++;
}
}

}
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.

La información recabada por el acomodador es la siguiente:

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.

Estos se identifican con el boleto que se genera al inicio del proceso.


Los trabajadores que hicieron más servicios se les aumenta el 15% en su pago semanal.
El informe que se solicita debe contener los siguientes datos, Nombre del Acomodador, cantidad de servicios realizados
por día y sueldo que se debe pagar semanalmente
En un apartado debe tener el aumento y la cantidad a pagar neto.

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.

Froufe, A. (2009) Java 2 Manual de usuario y tutorial. México: Alfaomega.

Joyanes, L. (2002) Java 2 Manual de programación. México: MC Graw Hill

Martin, A. (2010) Programador Certificado Java 2 Curso práctico. México: Alfaomega.

Oracle. (2011)The JAVA Tutorials. Estados Unidos de América: Oracle

También podría gustarte