deber hilos amaya

13
¿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 código 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 método run(). En cierta manera es como tener dos "program counters" para un mismo código. 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 método run().

Upload: telmo-amaya

Post on 10-Nov-2015

14 views

Category:

Documents


4 download

DESCRIPTION

Hilos prog2

TRANSCRIPT

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 RunnableEl 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 mediantethis, esto es lo que hemos hecho en AppletConcurrent.javahilo1 = new HiloApplet(this,pausa1);hilo2 = new HiloApplet(this,pausa2);Otra forma consiste en colocar el cdigo de ejecucin del hilo en elmtodo run()del applet ycrear los hiloscomo una instancia de la clase Thread. Esto es lo que hemos hecho en el applet appletConcurrent2.javaRealice un programa en java que utilice hilosEn 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 setterpublic 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 2Qu es un puerto en un computador?Unpuertoes unainterfaza travs de la cual se pueden enviar y recibir los diferentes tipos dedatos.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?Unpuerto serieopuerto seriales unainterfazde comunicaciones de datos digitales, frecuentemente utilizado porcomputadorasyperifricos, donde la informacin es transmitidabita bit enviando un solo bit a la vez, en contraste con elpuerto paraleloque 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 unordenador, 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 conexionesUSB, muchosmodemssiguen usando un puerto serie, como tambin los hacen algunasimpresoras,PDAsycmaras digitales. Pocos equipos tienen ms de dos puertos serie.Qu es el puerto paralelo?Unpuerto paraleloes unainterfazentre uncomputadory unperifrico, cuya principal caracterstica es que losbitsde datos viajan juntos, enviando un paquete debytea la vez.Cmo funciona el puerto paralelo y cul es su uso?Un puerto paraleloes 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 Aes un conector hembra de 25 patitas de tipo D. Es el utilizado en las impresoras2. 1284 tipo Bque es un conector de 36 patitas de tipo centronics y lo encontramos en la mayora de las impresoras.3. 1284 tipo Ces un conector similar al 1284 tipo B pero ms pequeo, con mejores propiedades elctricas y mecnicas.Qu es el puerto USB?Universal Serial Busms conocido por la siglaUSB, es unbusestndar industrial que define los cables, conectores yprotocolosusados en un bus para conectar, comunicar y proveer de alimentacin elctrica entrecomputadoras,perifricosy dispositivos electrnicos

Cmo funciona el puerto USB y cul es su uso?Trabaja como interfaz para transmisin dedatosydistribucinde energa, que ha sido introducida en elmercadode 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 paraalimentacin, transmite datos y est siendo adoptada rpidamente por laindustriainformtica.

Cmo se maneja el puerto serie en java?Siempre se puede recurrir a 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 lasdeclaraciones 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 hacerloen 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 enFile.2. Clic enNew.3. Clic enJava Project.4. En el campoProject NameescribaRS232.5. Clic enFinishAdjuntar librerias para el manejo de puertos seriales.

Siga los siguientes pasos:

1. Abra la carpetaGiovynetDriver/2. Copie los archivosNativeLibraries/libSerialPort.dll, NativeLibraries/libSOSerialPort.so,ySerialPort.jar.3. En eclipse, de clic enWindow.4. Clic enShow View.5. Clic enNavigator.6. Clic derecho en el nodo del proyecto (RS232).7. Clic enPaste.8. Clic derecho ensrc.9. Clic enBuild Path.10. Clic enConfigure Build Path.11. Clic enLibraries.12. Clic enAdd Jars.13. ClicenSerialPort.jar.14. Clic enOk.Crear clase paraescribir cdigo fuente.

Siga los siguientes pasos:

1. Clic en el nodo del proyecto(RS232).2. Clic ensrc.3. Clic enNew.4. Clic enClass.5. EscribaAppen el campoName.6. Clic enFinish.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 claseApp.2. Clic enRun As.3. Clic enJava 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 claseApp.2. Clic enRun As.3. Clic enJava 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.MouseEventevt) {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(newjava.awt.Color(0,255,0));tres.setBackground(newjava.awt.Color(0,255,0));cuatro.setBackground(newjava.awt.Color(0,255,0));cinco.setBackground(newjava.awt.Color(0,255,0));seis.setBackground(newjava.awt.Color(0,255,0));siete.setBackground(newjava.awt.Color(0,255,0));ocho.setBackground(newjava.awt.Color(0,255,0));nueve.setBackground(newjava.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 enciendanshort Addr = 0x378;// lo envio a los pines de datosescribir(Addr,datum);// llamo al metodo}Aqui envio los datos desde el textfield:private void EnviarMouseClicked(java.awt.event.MouseEventevt) {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?