Sei sulla pagina 1di 2

Hilos de ejecucin, temporizadores, manejo de

puertos

Juan Pablo Tonato Muoz


Email:jtonatom@est.ups.edu.ec
Carrera de Ingeniera Elctrica, Universidad Politcnica Salesiana, Cuenca, Ecuador.

OBJETIVO
Estudiar la clase Thread y la interface Runnable para el
manejo de hilos desde un programa.
Saber la funcin de un temporizador en JAVA.
Como funcionan el manejo de puertos en JAVA.
DESARROLLO
Hilos de ejecucion.
Los hilos de ejecucin en Java permiten que una misma
aplicacin

pueda

ejecutar

simultneamente

varias

tareas. Para ello se dispone de la clase Thread.


Un hilo tiene un ciclo de vida que va desde su creacin
hsta su terminacin. Durante su ciclo de vida cada uno
de los hilos o tareas de una aplicacin puede estar en
diferentes estados, algunos de los cuales se indican a
continuacin:
Nacido: Cuando se acaba de crear un hilo, se dice que
est nacido, y contina en ese estado hasta que se
invoca el mtodo start() del hilo. La
siguiente sentencia crea un nuevo thread pero no lo
arranca, por lo tanto deja el thread en el estado de
nacido.
Thread miHilo = new MiClaseThread();
Cuando un thread est en este estado, es slo un objeto
Thread vaco o nulo. No se han asignado recursos del
sistema todava para el thread. As,
cuando un thread est en este estado, lo nico que se
puede hacer es arrancarlo con start().
Listo: Cuando se invoca el mtodo start() del hilo, se
dice que est en estado listo. El mtodo se arranca con
la siguiente instruccin, para el caso
del hilo miHilo:
miHilo.start();
Ejecutable: cuando el mtodo start() se ejecuta, crea
los recursos del sistema necesarios para ejecutar el
thread, programa el thread para
ejecutarse, y llama al mtodo run() del thread que se
ejecuta en forma secuencial. En este punto el thread
est en el estado ejecutable. Se denomina as puesto
que todava no ha empezado a ejecutarse.
En ejecucin: Un hilo en estado de listo de la ms alta
prioridad, pasa al estado de ejecucin, cuando se le
asignan los recursos de un procesador, o
sea cuando inicia su ejecucin. Aqu el thread est en
ejecucin.Cada hilo tiene su prioridad, hilos con alta
prioridad se ejecutan preferencialmente
sobre los hilos de baja prioridad.

No ejecutable :Un hilo contina la ejecucin de su


mtodo run(), hasta que pasa al estado de no ejecutable
originado cuando ocurre alguno de los
siguientes cuatro eventos:
Se invoca a su mtodo sleep().
Se invoca a su su mtodo suspend().
El thread utiliza su mtodo wait() para esperar una
condicin variable.
El thread est bloqueado durante una solicitud de
entrada/salida.
La siguiente es una secuencia de las acciones a realizar
para cada entrada en el estado "No Ejecutable":
Si se ha puesto a dormir un hilo, deben pasar el nmero
de milisegundos especificados en sleep(). Si se ha
suspendido un hilo, se debe llamar a su mtodo
resume().Si un hilo est esperando una condicin
variable, siempre que el objeto propietario de la variable
renuncie mediante notify() o notifyAll().
Si un hilo est bloqueado durante la I/O, cuando se
complete la I/O.
Muerto: Un hilo pasa al estado de muerto cuando se
termina su mtodo
run(), o cuando se ha invocado su mtodo stop().
En el mtodo constructor de la clase se crear un nuevo
objeto de la clase Thread y se llamar al mtodo start()
para que se inicie su ejecucin.:
public
NombreDelHilo()
{
Thread hilo=new Thread(this);
hilo.start();
}

Temporizadores en JAVA
Para poder manejar una tarea de manera automtica y
repetitiva debemos sobre-escribir el mtodo run de la
clase TimerTask; para esto crearemos una clase interna
que llamaremos RemindTask. Este mtodo lo nico que
hace es incrementar una variable segundos y cargar
este valor en el display de nuestro contador. Recuerden
que dijimos que era una clase interna, as que se debe
declarar dentro del cuerpo de la clase de la interfaz
grfica con lo que el cdigo.
Manejo de puertos en JAVA

Para poder realizarlo se utiliza las librerias para puerto


serial GyovinetDriver, que viene siendo un Wrapper para
usar el puerto serial tanto en Windows como en Linux.
La clase se llama PuertoObj, y vamos con las
declaraciones. Objeto que hace referencia directa al
puerto
com.
Este objeto es el que enviara los comandos y recibir
las respuestas en el puerto
1Com puerto;
Para configurar el puerto com, necesitamos establecer
los
parmetros
de
la
conexin
en un objeto Parameters. private Parameters
parametros; La variable formatoCadena y subCadena,
reciben string indicando cual es el formato de la cadena
recibida por el puerto despus de enviar un comando y
que parte de la cadena necesitamos regresar con el
mtodo LeerDatos de esta clase. El objeto puerto, tiene
algunas variantes para enviar caracteres al puerto,
despus de estar probando algunas el mtodo
sendArrayChar() es el que me funciono para lo que yo
estaba haciendo (Que es conectar con una bascula).
Uds pueden probar otros mtodos, ya nos contaran qu
fue lo que les funcion. Volviendo, el mtodo anterior es
muy sencillo, solo se le dice que escriba el comando en
forma de arreglo de caracteres en el puerto. Cuidado
con las excepciones, se debe atrapar o reportar las que
se generen.
CONCLUSION
-Un hilo es un objeto cuya clase hereda de Thread
-Define su flujo de ejecucin en un mtodo run()
-Todas las operaciones sobre el hilo hay que hacerlas
con la variable Thread

BIBLIOGRAFIA
https://arvinformatica.wordpress.com/2011/03/11/manejo
-del-puerto-serial-rs232-con-java/
http://codigoprogramacion.com/cursos/java/133-uso-dehilos-o-threads-en-java.html

Potrebbero piacerti anche