Monografia Hilos
Monografia Hilos
Monografia Hilos
INGENIERÍA DE SISTEMAS
MONOGRAFÍA
Semestre: Segundo
Materia: Programación II
LA PAZ – 2017
ÍNDICE
1. Resumen. ........................................................................................................... 1
2. Abstract. ............................................................................................................. 1
3. Palabras clave. ................................................................................................... 1
4. Key – word. ........................................................................................................ 1
5. Introducción. ....................................................................................................... 1
6. Planteamiento del problema. .............................................................................. 1
6.1. Árbol de problemas. ..................................................................................... 1
7. Formación del problema. .................................................................................... 1
8. Objetivo general. ................................................................................................ 1
9. Objetivos específicos.......................................................................................... 1
10. Justificación. ....................................................................................................... 1
10.1. Técnica. ....................................................................................................... 1
10.2. Económica. .................................................................................................. 1
10.3. Social. .......................................................................................................... 2
11. Alcances. ............................................................................................................ 2
12. Limites. ............................................................................................................... 2
13. Desarrollo. .......................................................................................................... 2
13.1. Threads o hilos ............................................................................................ 2
14.2. Clases de hilos............................................................................................. 2
14.3. Ejecución de un hilo. .................................................................................... 3
14.4. Parada y activación de un hilo. .................................................................... 3
14.5. Join .............................................................................................................. 5
14.6. Propiedades del hilo .................................................................................... 5
15. Resultados. ........................................................................................................ 6
16. Conclusión.......................................................................................................... 6
17. Tendencias futuras. ............................................................................................ 6
18. Bibliografía. ........................................................................................................ 6
USO DE PROGRAMACIÓN DE HILOS APLICADO A PROGRAMACIÓN ORIENTADA
A OBJETOS
1. Resumen.
La programación de hilos es uno un proceso que se ejecutan dentro de otro
proceso de esta manera podemos realizar varias tareas en un mismo main y así
poder reutilizarlo, y así el hilo trabajan muy similar a los métodos en la
programación de esta manera tenemos una opción más para poder desarrollar
nuevo software.
2. Abstract.
The programming of threads is one process that is executed within another process
in this way we can perform several tasks in the same main and thus be able to
reuse it, and so the thread works very similar to the methods in the programming
in this way we have an option more to be able to develop new software
3. Palabras clave.
Hilo, programar, clase, método, procesador, parada, activación.
4. Key – word.
Thread, schedule, class, method, processor, stop, activation.
5. Introducción.
La destrucción de los hilos antiguos por los nuevos es una característica que no
permite a una aplicación realizar varias tareas a la vez Los distintos hilos de
ejecución comparten una serie de recursos tales como el espacio de memoria, los
archivos abiertos, la situación de autenticación, etc. Esta técnica permite
simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones
simultáneamente.
Los hilos de ejecución que comparten los mismos recursos, sumados a estos
recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos
de ejecución de un mismo proceso compartan los recursos hace que cualquiera
de estos hilos pueda modificar estos recursos. Cuando un hilo modifica un dato en
la memoria, los otros hilos acceden a ese dato modificado inmediatamente.
1
6. Planteamiento del problema.
6.1. Árbol de problemas.
muchos metodos
programacion complica el llamdo de
estructura sin metodo cada uno para el
desarrollo
1
10.3. Social.
Las empresas podrán tener un software de calidad y más liviano para poder
utilizar en sus distintas áreas.
11. Alcances.
Se hablará de sintaxis de la programación en hilo.
Se verá el código en algunos ejemplos.
12. Limites.
No se desarrollará un programa completo.
No se verá la aplicación en distintos lenguajes de programación
13. Desarrollo.
13.1. Threads o hilos
Se crea un proceso y dentro de este proceso un hilo de ejecución para el método
main a la vez se ejecuta el método main que la aplicación lance internamente
nuevos hilos de ejecución en los que se ejecute el código de algún método. Un
servidor web es una aplicación que al ser lanzada y creada para un proceso y un
hilo para el método main espera a que llegue una petición http de un cliente al
puerto que escucha y cuando llega realiza dos cosas:
1. Crear un nuevo hilo de ejecución en el que atiende la petición.
2. Vuelve inmediatamente a escuchar el puerto para nuevas peticiones.
En equipos con menos procesadores que hilos lanzados en un momento dado se
habla de concurrencia aparente ya que todos los hilos no estarán ejecutándose a
la vez. Pero esto no hace pensar que tener un solo procesador inútil para lanzar
más de un hilo simultáneamente ni mucho menos el 100% del tiempo de ejecución
del hilo.
14.2. Clases de hilos.
Las clases de hilos pertenecen al namespace System.Threading. para poder crear
un hilo solo hay que crear una instancia de esta clase sus métodos más
importantes son:
Start: lanza el hilo a ejecutar.
Suspend. Detiene momentáneamente la ejecución del hilo.
Resume: activa el hilo suspendido.
Abort: aborta la ejecución del hilo.
Join: detiene el hilo donde se invoca hasta que el hilo para el que se le
invoca termine.
2
14.3. Ejecución de un hilo.
No es más que un bloque de código vacío por defecto que se lanza a ejecución de
modo simultaneo a otro hilo para que el método star de la clase thread lance un
hilo que ejecuta un código real ha de recibir como parámetro una referencia al
punto de entrada del código real. threadStar es un delegate que se utilizara para
referenciar el punto de entrada de un código que se desea que sea el punto de
entrada de un hilo su sintaxis es:
Public delegate void ThreadStar();
Para verlo mejor se escribirá un código que muestre 10 veces un mesaje que diga
hola soy el hilo:
using System;
using System.Threading;
namespace Threads1
{
class PruebaThread
{
static void Main(string[ ] args)
{
Thread miThread = new Thread(new ThreadStar
(MiFun));
miThread.Start();
MiFun();
}
Public static void MiFun()
{
System.Console.WriteLine(“Hola, soy el Hilo”);
For (int i=0; i<=10; i++)
System.Console.WriteLine (“Iteracion:” + i);
}
}
}
14.4. Parada y activación de un hilo.
Una vez que un hilo ha sido ejecutado puede ser suspendido reactivado o
abortado.
Suponga que se desea crear una aplicación que olance dos funciones en hilos
MiFun muestra números de 1 al 10 el MiFun2 letras de la “a” a la “z”, se desea que
se ejecute el MiFun pero solo hasta mostrar los 5 primeros números y queda
suspendido, lo cual debe ejecutarse MiFun2 hasta acabar y luego debe reactivarse
MiFun. Veamos cómo sería el código:
using System;
using System.Threading;
3
namespace Thread2
{
Class PararActivarThread
{
static Thread miThread = null;
static void Main (string [ ] args)
{
miThread = new Thread(new ThreadStar (MiFun));
MiThread.Name = “ThreadMiFun”;
Thread miThread2 = new Thread(new ThreadStar
(MiFun2));
miThread2.Name = “ThreadMiFun2”;
miThread.Star();
miThread2.Start();
}
Public static void MiFun()
{
System.Console.WriteLine(“Hola soy el hilo” +
Thread.CurrentThread.Name.ToString());
for(int i=0; i<=10; i++)
{
System.Console.WriteLine(Thread.Currenthread.Name.ToSt
ring() + “—Iteracion:” + i);
if (i==5)
{
Thread.CurrentThread.Suspend();
}
}
}
Public static void MiFun2()
{
System.Console.WriteLine(“Hola soy el hilo” +
Thread.CurrentThread.Name.ToString());
for(char c=’a’; c<=’z’; c++)
{
System.Console.writeLine(Thread.CurrentThread.Name.ToS
tring() + “—Iteracion:” + c);
}
miThread.Resume();
}
}
}
4
14.5. Join
Lo que hace es detener la ejecución del hilo donde se invoca hasta que el hilo para
el que se invoca termina. Lo veremos a continuación.
using System;
using System.Threading;
namespace Threads1
{
Class PruebaThread
{
static void Main (string [ ] args)
{
Thread.currentThread.Name = “Principal”;
Thread miThread = new Thread(new ThreadStart
(MiFun));
miThread.Name = “ThreadMiFun”;
miThread.Start();
mithread.Join();
MiFun();
}
Public static void MiFun()
…..
….
}
}
El join es un método de sincronización y consiste en que lo invoca ejecuta el
método wait, deteniéndose y el hilo sobre que es invocado ejecuta el método pulse
cuando termina permitiendo a quien se detuvo mediante un wait reanudar su
ejecución.
14.6. Propiedades del hilo
Cuando se lanza varios hilos para que se ejecuten simultáneamente se les asigna
las partes del tiempo en función del valor que tenga su propiedad priority. La
propiedad priority es una propiedad de clase publica no es de clase static que
veremos a continuación algunas de estas prioridades:
Valor Descripción
AboveNormal El thread tiene la prioridad por encima de la normal.
BelowNormal El hilo tiene la prioridad por debajo de la normal.
Highest El hilo tiene la prioridad más alta.
Lowest El hilo tiene la prioridad más baja.
Normal El hilo tiene la prioridad normal.
5
15. Resultados.
No se logró un estudio profundo de la programación de hilos.
Se logró tener una opción más para poder desarrollar software.
No se logró un desarrollo de un software para poder verificar si es
totalmente óptimo.
Se logró contribuir al estudio de la programación de hilos como una opción
más para el desarrollo de software
16. Conclusión.
La programación de hilo es una nueva opción para el desarrollo del software de
esta manera se podrá tener más opciones a la hora de desarrollar y ser más
flexible a las peticiones del cliente.
17. Tendencias futuras.
La programación de hilo se puede aplicar en el desarrollo de software contable,
medicina, para las normas viales etc.
18. Bibliografía.
19.
anonimo. (s.f.). Fing. Obtenido de
https://www.fing.edu.uy/tecnoinf/mvd/cursos/so/material/teo/so05-hilos.pdf
JavierCantero. (12 de noviembre de 2009). Wikipedia. Obtenido de
https://es.wikipedia.org/wiki/Hilo_(inform%C3%A1tica)
Santamaria, R. (s.f.). Hilos. mexico.