Você está na página 1de 12

Qu es un hilo o Thread en Java?

Los hilos son otra forma de crear la posibilidad de concurrencia de


actividades; sin embargo, la gran diferencia es que los hilos comparten el
cdigo y el acceso a algunos datos en forma similar a como un objeto tiene
acceso a otros objetos. En Java un hilo es un objeto con capacidad de correr
en forma concurrente el mtodo run(). En cierta manera es como tener dos
"program counters" para un mismo cdigo. Una diferencia con los procesos
es que carece de sentido y no es posible en este enfoque hacer mutar un
proceso con algo similar a exec().
Para qu sirven los hilos o Thread?
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.
Indique las diferentes maneras de codificar en Java los hilos?
Existen dos modos de crear Hilos en Java
- Extender la clase Thread
-Implementar la interface Runnable
El primer modo consiste en:
crear una nueva clase que hereda la clase Thread y redefinir el mtodo run().

(Este mtodo contendr el cdigo que va a ser ejecutado por el hilo)


Luego se instancian objetos de la clase derivada y se llama a su mtodo
start().

(As se arrancan hilos que ejecutan el cdigo contenido en el mtodo run())

Podemos utilizar dos formas de crear Hilos utilizando Applets:


Una consiste es crear clases extendidas de Thread, que contendr el cdigo
de ejecucin del hilo, donde pasamos al constructor una referencia al applet
que crea los hilos mediante this, esto es lo que hemos hecho en
AppletConcurrent.java
hilo1 = new HiloApplet(this,pausa1);
hilo2 = new HiloApplet(this,pausa2);

Otra forma consiste en colocar el cdigo de ejecucin del hilo en el mtodo


run() del applet y crear los hilos como una instancia de la clase Thread. Esto
es lo que hemos hecho en el applet appletConcurrent2.java
Realice un programa en java que utilice hilos
En este ejemplo vamos a simular el proceso de cobro de un supermercado;
es decir, unos clientes van con un carro lleno de productos y una cajera les
cobra los productos, pasndolos uno a uno por el escaner de la caja
registradora. En este caso la cajera debe de procesar la compra cliente a
cliente, es decir que primero le cobra al cliente 1, luego al cliente 2 y as
sucesivamente.
public class Cajera {
private String nombre;
// Constructor, getter y setter
public void procesarCompra(Cliente cliente, long timeStamp) {

System.out.println("La cajera " + this.nombre +


" COMIENZA A PROCESAR LA COMPRA DEL CLIENTE "
+ cliente.getNombre() +
" EN EL TIEMPO: " + (System.currentTimeMillis() timeStamp) / 1000

+
"seg");

for (int i = 0; i < cliente.getCarroCompra().length; i++)


{this.esperarXsegundos(cliente.getCarroCompra()[i]);
System.out.println("Procesado el producto " + (i + 1) +
" ->Tiempo: " + (System.currentTimeMillis() timeStamp) / 1000 +
"seg");
}

System.out.println("La cajera " + this.nombre + " HA


TERMINADO DE PROCESAR " +
cliente.getNombre() + " EN EL TIEMPO: " +
(System.currentTimeMillis() - timeStamp) / 1000 +
"seg");

}
private void esperarXsegundos(int segundos) {
try {

Thread.sleep(segundos * 1000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
Clase Cliente.java:
public class Cliente {
private String nombre;
private int[] carroCompra;
// Constructor, getter y setter
}

Parte 2
Qu es un puerto en un computador?
Un puerto es una interfaz a travs de la cual se pueden enviar y recibir los
diferentes tipos de datos.
Para qu se utilizan los puertos en un computador?
Sirven para recibir y enviar datos de la computadora a perifricos que estn
conectados a ella, estos se llaman puertos de comunicacin y actualmente
se conoce una gran gama de ellos.

Qu es el puerto serial?
Un puerto serie o puerto serial es una interfaz de comunicaciones de
datos digitales, frecuentemente utilizado porcomputadoras y perifricos,
donde la informacin es transmitida bit a bit enviando un solo bit a la vez, en
contraste con elpuerto paralelo que enva varios bits simultneamente.
Cmo funciona el puerto serial y cul es su uso?
El puerto serie est considerado como una de las conexiones externas ms
bsicas de un ordenador, y ha sido una parte integral de la mayora de
ordenadores durante ms de 20 aos. Aunque muchos de los nuevos
sistemas

estn prescindiendo de los

puertos

serie a favor

de las

conexiones USB, muchos modemssiguen usando un puerto serie, como


tambin los hacen algunasimpresoras, PDAs y cmaras digitales. Pocos
equipos tienen ms de dos puertos serie.
Qu es el puerto paralelo?
Un puerto paralelo es una interfaz entre un computador y un perifrico,
cuya principal caracterstica es que los bits de datos viajan juntos, enviando
un paquete de byte a la vez.
Cmo funciona el puerto paralelo y cul es su uso?
Un puerto paralelo es una interfaz entre un ordenador y un perifrico. El
puerto paralelo transmite la informacin byte por byte, es decir que los 8 bits
de datos que forman un byte viajan juntos. Un ejemplo de puerto paralelo es
el puerto de la impresora.

El puerto paralelo puede utilizar uno de los tres tipos de conectores definidos
por el estndar IEEE 1284:
1. 1284 tipo A es un conector hembra de 25 patitas de tipo D. Es el utilizado
en

las

impresoras

2. 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo


encontramos

en

la

mayora

de

las

impresoras.

3. 1284 tipo C es un conector similar al 1284 tipo B pero ms pequeo, con


mejores propiedades elctricas y mecnicas.
Qu es el puerto USB?
Universal Serial Bus ms conocido por la sigla USB, es un busestndar
industrial que define los cables, conectores y protocolos usados en un bus
para

conectar,

comunicar

proveer

de

alimentacin

elctrica

entre computadoras, perifricos y dispositivos electrnicos

Cmo funciona el puerto USB y cul es su uso?


Trabaja como interfaz para transmisin de datos y distribucin de energa,
que ha sido introducida en el mercado de PCs y perifricos para mejorar las
lentas interfaces serie (RS-232) y paralelo. Esta interfaz de 4 hilos, 12 Mbps y
"plug and play", distribuye 5V para alimentacin, transmite datos y est
siendo adoptada rpidamente por la industria informtica.

Cmo se maneja el puerto serie en java?


Siempre

se

puede

recurrir

la

interfaz

nativa

de

Java

(JNI).

Lo que se hace es declarar una clase cuyos procedimientos son "native" y no

tienen cuerpo. Despues de compilar la clase se le aplica al archivo .class la


aplicacin "javah", la cual genera un archivo del tipo ".h". Para que sirve?
Da

las declaraciones

de

unos

procedimientos

en

lenguaje

C.

Como el C es el lenguaje en el que estn escritos los sistemas operativos


modernos, todo los "api" e interfaces a ncleo son accesibles desde C. La
funciones en C con usadas para crear una librera dinmica (.DLL en
Windows o so.so en Linux)que es importada al progama y se efecta el
enlace de las rutinas "native" a las de la librera. Problema resuelto. Por eso,
si consiguen como hacerlo en C, ya saben como hacerlo en Java.
Qu debo importar y cul es la codificacin para programar y utilizar
puertos seriales?
Crear proyecto java en Eclipse.
Siga los siguientes pasos:
1.

Clic en File.

2.

Clic en New.

3.

Clic en Java Project.

4.

En el campo Project Name escriba RS232.

5.

Clic en Finish

Adjuntar librerias para el manejo de puertos seriales.


Siga los siguientes pasos:

1. Abra la carpeta GiovynetDriver/

2. Copie los archivos NativeLibraries/libSerialPort.dll,


NativeLibraries/libSOSerialPort.so, y SerialPort.jar.
3. En eclipse, de clic en Window.
4. Clic en Show View.
5. Clic en Navigator.
6. Clic derecho en el nodo del proyecto (RS232).
7. Clic en Paste.
8. Clic derecho en src.
9. Clic en Build Path .
10.

Clic en Configure Build Path.

11.

Clic en Libraries.

12.

Clic en Add Jars.

13.

Clic en SerialPort.jar.

14.

Clic en Ok.

Crear clase para escribir cdigo fuente.


Siga los siguientes pasos:

1. Clic en el nodo del proyecto(RS232).


2. Clic en src.

3. Clic en New.
4. Clic en Class.
5. Escriba App en el campo Name.
6. Clic en Finish.
Escribir y ejecutar cdigo para conocer puertos libres.

1. Escriba el siguiente cdigo en la clase App:

1. Clic derecho en una parte en blanco de la clase App.


2. Clic en Run As.
3. Clic en Java Application.
4. Observe la impresion de puertos consola.
Escribir y ejecutar cdigo para transmitir datos entre puertos
libres.
Siga los siguientes pasos:
Escriba el siguiente codigo:

Escribir y ejecutar cdigo para transmitir datos entre puertos


libres.
Siga los siguientes pasos:

1. Escriba el siguiente codigo:

1. Clic derecho en una parte en blanco de la clase App.


2. Clic en Run As.
3. Clic en Java Application.
4. Observe la impresin de datos enviados y recibidos.
Cmo se maneja el puerto paralelo en java?

Explico extracto del codigo,este es para encender todos los leds:


private void EncenderTodoMouseClicked(java.awt.event.MouseEvent evt) {
dos.setSelected(true);
tres.setSelected(true);
cuatro.setSelected(true);
cinco.setSelected(true);
seis.setSelected(true);
siete.setSelected(true);
ocho.setSelected(true);
nueve.setSelected(true);
dos.setBackground(new java.awt.Color(0,255,0));
tres.setBackground(new java.awt.Color(0,255,0));
cuatro.setBackground(new java.awt.Color(0,255,0));
cinco.setBackground(new java.awt.Color(0,255,0));
seis.setBackground(new java.awt.Color(0,255,0));
siete.setBackground(new java.awt.Color(0,255,0));
ocho.setBackground(new java.awt.Color(0,255,0));
nueve.setBackground(new java.awt.Color(0,255,0));
short datum = (short) 255; //esto es lo
// mas importante mando el dato maximo
// que soporta el puerto y esto hace que todos
// los leds se enciendan
short Addr = 0x378; // lo envio a los pines de datos
escribir(Addr,datum); // llamo al metodo
}
Aqui envio los datos desde el textfield:
private void EnviarMouseClicked(java.awt.event.MouseEvent evt) {

short datum = (short) Integer.parseInt(TF_Datos.getText());


short Addr =0x378;
lpt.output(Addr,datum);
//aqui pasa lo mismo que en el de arriba,
// lo que cambia es que obtengo el dato
// desde el JTF (java text field).
}
Cmo se maneja el puerto USB en java?
Qu debo importar y cul es la codificacin para programar y
utilizar puertos USB?

Você também pode gostar