Hilos En C#

Páginas: 6 (1437 palabras) Publicado: 8 de noviembre de 2012
Threads o Hilos

Threads o Hilos
En .NET, cuando se lanza una aplicación se crea un proceso y dentro de este proceso un hilo de ejecución o thread para el método Main. Es posible, a la vez que 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 ejemplo muy actual de utilización de threads es unaaplicación de tipo servidor Web, como el IIS, el Apache Web Server, etc... Un servidor Web es una aplicación que, al ser lanzada y creado para ella 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 (el 80 generalmente) y cuando llega hace dos cosas: Crea un nuevo hilo de ejecución o thread en el que atiende la petición. Vuelve inmediatamente(en el hilo principal) a escuchar el puerto para atender nuevas peticiones (mientras se atiende la petición en el nuevo hilo).

Cada vez que llegue una nueva petición se repetirá el mismo proceso, de modo que se crearán nuevos hilos, pudiendo haber n hilos en ejecución simultáneamente, uno principal y n-1 atendiendo peticiones http de los clientes. Es de rigor puntualizar que al decir“simultáneamente” se piensa en condiciones ideales (un procesador por hilo), hablando en tales condiciones de concurrencia real de varios hilos o threads. En equipos con menos procesadores que hilos o threads lanzados en un momento dado, se habla de concurrencia aparente, ya que todos los hilos no pueden estar ejecutándose a la vez. No obstante, no se ha de pensar que tener un solo procesador hace inútillanzar más de un hilo o thread simultáneamente. Ni mucho menos, el 100% del tiempo de ejecución de un hilo no está ocupado el procesador (interacción con el usuario, entrada/salida, acceso a memoria), de modo que otro hilo puede aprovechar sus tiempos muertos. También es cierto que un exceso de threads o hilos resulta negativo, ya que se puede perder más tiempo “saltando” de un thread a otro (a estaoperación se la llama “conmutación de contexto” e implica salvar y recuperar datos y registros de memoria) que en la ejecución real. En Windows, aunque sólo se disponga de un procesador, se permite ejecutar varios hilos simultáneamente (concurrencia aparente). Lo que se hace es ofrecer un tiempo determinado de ejecución (time slice o “rodaja de tiempo”) a cada hilo (realmente son milisegundos).Cuando ese tiempo finaliza, Windows retoma el control y se lo cede a otro thread. De este modo se ofrece al usuario la ilusión de tener varias aplicaciones en ejecución simultáneamente y también se optimiza el uso de los recursos. A este modo de organizar la ejecución de varios threads se le llama preemptive multitasking (“multitarea preemptiva”) En realidad, el sistema operativo y cualquier hilo quese lance ya son dos hilos, con lo cual la ejecución en Windows es siempre multihilo.

1/16

Threads o Hilos

La clase Thread.
Esta clase pertenece al namespace System.Threading. Para crear un thread sólo hay que crear una instancia de esta clase. Sus métodos más importantes son: start: lanza el thread a ejecución. suspend: detiene momentáneamente la ejecución del thread. resume: activa elthread suspendido, es decir, lo vuelve a poner en ejecución. abort: aborta o para de modo inmediato la ejecución del thread. join: detiene el thread donde se invoca hasta que el thread para el que se le

invoca termina. Las propiedades más interesantes de la clase Thread son: - Name: permite darle un nombre a un thread que lo distinga del resto. - CurrentThread: contiene una referencia al threadque está actualmente en ejecución.

Ejecución de un thread.
Un thread no es más que un bloque de código vacío por defecto que es posible lanzar a ejecución de modo simultáneo a otros threads. Para que el método start de la clase Thread lance un thread que ejecute un código real, ha de recibir como parámetro una referencia o delegate de tipo ThreadStart al punto de entrada del código...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Creación de hilos con parámetros en C#
  • Hilos en c sharp
  • hilo
  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS