miércoles, 25 de abril de 2012

hilo o hebra


HILO

Un hilo es un proceso que se está ejecutando en un momento determinado en nuestro sistema operativo, como cualquier otra tarea, esto se realiza directamente en el procesador. Existen los llamados 'demonios' que son los procesos que define el sistema en sí para poder funcionar y otros que llamaremos los hilos definidos por el usuario o por el programador, estos últimos son procesos a los que el programador define un comportamiento e inicia en un momento específico.

Existen dos maneras de creación de un hilo:

·         Thread

La clase Thread es la clase responsable de producir hilos funcionales para otras clases. Para

añadir la funcionalidad de hilo a una clase simplemente se deriva la clase de Thread y se

ignora el método run. Es en este método run donde el procesamiento de un hilo toma lugar, y

a menudo se refieren a él como el cuerpo del hilo. La clase Thread también define los

métodos start y stop, los cuales te permiten comenzar y parar la ejecución del hilo, además de un gran número de métodos útiles.



·         Runnable

Java no soporta herencia múltiple de forma directa, es decir, no se puede derivar una clase de

varias clases padre. Esto nos plantea la duda sobre cómo podemos añadir la funcionalidad de

Hilo a una clase que deriva de otra clase, siendo ésta distinta de Thread. Para lograr esto se

utiliza la interfaz Runnable. La interfaz Runnable proporciona la capacidad de añadir la

funcionalidad de un hilo a una clase simplemente implementando la interfaz, en lugar de

derivándola de la clase Thread.



Los estados de un hilo son los siguientes;



Nuevo (new): Este es el estado en que un hilo se encuentra después de que un objeto de la clase Thread ha sido instanciado pero antes de que el método start() sea llamado.

- En ejecución (runnable): Este es el estado en que un hilo puede ser elegido para ser ejecutado por el programador de hilos pero aún no está corriendo en el procesador. Se obtiene este estado inmediatamente después de hacer la llamada al método start() de una instancia de la clase Thread.



- Ejecutándose (running): Este es el estado en el que el hilo está realizando lo que debe de hacer, es decir, está realizando el trabajo para el cual fue diseñado.



- Esperando/bloqueado/dormido (waiting/blocked/sleeping): Es el estado en el cual el hilo está vivo aún pero no es elegible para ser ejecutado,es decir, no está en ejecución pero puede estarlo nuevamente si algún evento en particular sucede. Por ejemplo, un hilo puede estar durmiendo por que en el código se le ha pedido que lo haga pero pasa a estado en ejecución cuando el tiempo que se le pidió dormir ha expirado.



- Muerto (dead): Un hilo está muerto cuando se han completado todos los procesos y operaciones contenidos en el método run(). Una vez que un hilo ha muerto NO puede volver nunca a estar vivo, recordemos que no es posible llamar al método start() más de una vez para un solo hilo.

- Hilo Durmiendo (sleeping):

El método sleep() es un método estático de la clase Thread. Generalmente lo usamos en el código para pausar un poco la ejecución de un proceso en particular forzándolo a dormir durante un tiempo determinado.





martes, 27 de marzo de 2012

COMPONENTES EN JAVA-JavaBean


Un JavaBean o bean es un componente hecho en software que se puede reutilizar y que puede ser manipulado visualmente por una herramienta de programación en lenguaje Java.
Para ello, se define un interfaz para el momento del diseño (design time) que permite a la herramienta de programación o IDE, interrogar (query) al componente y conocer las propiedades (properties) que define y los tipos de sucesos (events) que puede generar en respuesta a diversas acciones.
Aunque los beans individuales pueden variar ampliamente en funcionalidad desde los más simples a los más complejos, todos ellos comparten las siguientes características:
  • Introspection: Permite analizar a la herramienta de programación o IDE como trabaja el bean
  • Customization: El programador puede alterar la apariencia y la conducta del bean.
  • Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones del usuario o del sistema, y también los sucesos que puede manejar.
  • Properties: Permite cambiar los valores de las propiedades del bean para personalizarlo (customization).
  • Persistence: Se puede guardar el estado de los beans que han sido personalizados por el programador, cambiando los valores de sus propiedades.
En general, un bean es una clase que obedece ciertas reglas:                           
  • Un bean tiene que tener un constructor por defecto (sin argumentos)
  • Un bean tiene que tener persistencia, es decir, implementar el interface Serializable.
  • Un bean tiene que tener introspección (instrospection). Los IDE reconocen ciertas pautas de diseño, nombres de las funciones miembros o métodos y definiciones de las clases, que permiten a la herramienta de programación mirar dentro del bean y conocer sus propiedades y su conducta. 


    Para añadir un componente se deberán llevar acabo los siguientes pasos:

    1.       Abrir la pestaña Tools/palette/swings/AWTcomponents.
     
    2. Se abre la siguiente ventana y le das clic en Add from JAR…
    3.       Se selecciona la carpeta que contenga los componentes de JAVA  y le das doble clic.

    4.       Enseguida te aparecerá otras y se selecciona la que contenga el nombre de jars.
    5.       Te aparecerán los componentes y seleccionas el que desees y le das clic en Next.
    6.       Eliges la carpeta donde se va a ubicar el componente y das clic en Finish.
    7.       Arrastras el componente de la paleta Beans y lo sueltas en la ventana que deseas.