Você está na página 1de 4

Materia: Programacin orientado a objetos.

Tema: Practica de conceptos bsicos.

SEGUNDA UNIDAD.

Hilos: Son programas ligeros a parte del programa, estos


pero realizan diferentes cosas.

se ejecutan al mismo tiempo

Hilos multiproceso: Son dos programas que se ejecutan casi a la vez teniendo el control el
sistema operativo.

Multihilo: Dos o ms tareas o procesos se ejecutan casi a la misma vez dentro de un


programa.
Recin creada (New thread): Entra inmediatamente despus de su ejecucin.
Los mtodos ms importantes de los hilos son:
1.
2.
3.
4.
5.

Start: Lanza el thread a ejecucin.


Suspend: retiene momentneamente la ejecucin del thread
Resume: activa el thread suspendido
abort: para de forma inmediata la ejecucin del thread
Join: detiene el thread cuando se invoca

Propiedades del Thread:


o
o

Name: Da un nombre a un thread para que se pueda distinguir de los dems


CurrentThread: Contiene una referencia al thread que est actualmente en
ejecucin

Corrible (Runnable): La ejecucin existe y el hilo puede ocupar en cualquier momento la


CPU
Bloqueada (Not runnable): Se ingresa cuando se invoca un suspend(), el hilo invoca un
mtodo wait() de algn objeto, el hilo invoca un sleep() , el hilo espera por alguna operacin
de I/O.

Muerta (Dead): Esto ocurre cuando el hilo se termina de ejecutar (concluye el mtodo run)

Sincronizacin de Hilos: Consiste en que distintos threads al modo coordinado a recursos


compartidos
Look: bloquea el acceso a una parte de cdigo.
Procesos en Paralelismo: se lleva a cabo cuando se est ejecutando dos procesos al
mismo tiempo.

Tipos de procesos

Proceso sncrono: Son los que mandan mensajes a otros procesos y espera la respuesta
de ese proceso para poder continuar.
Proceso asncrono: Es aquel que necesita
independientemente de lo que estn haciendo.

la

atencin

de

otro

proceso

Multihilos: Es una forma de hacer paralelismo por medio de ejecucin de los diferentes
hilos.
Un ejemplo de un cdigo es el siguiente.

using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
o Thread p1;
o Thread p2;

o
o
o

byte r, g;
bool b1, b2;
public Form1()

o
o
o

o
o

InitializeComponent();

}
private void Form1_Load(object sender, EventArgs e)
{
r = 0; g = 255; b1 = false; b2 = true;
p1 = new Thread(new ThreadStart(Hilo1));
p2 = new Thread(new ThreadStart(Hilo2));
p1.Start();
p2.Start();
}
public void Hilo1() {
while (true)
{
Thread.Sleep(10)
if (r >= 0 && r <= 255 && b1 == false)
{
r++;
if (r == 255)
o b1 = true;

if (r >= 0 && r <= 255 && b1 == true)


{
r--;
if (r == 0)
o b1 = false;
}
pictureBox1.BackColor = Color.FromArgb(r, 80, 100);
}
}

Você também pode gostar