Programación Java. Práctica 12. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García
|
|
- Vicenta Inés Reyes Godoy
- hace 8 años
- Vistas:
Transcripción
1 Práctica 12 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García
2 Informática 2: Práctica nº 12 página 1 INDICE Ejercicio 1: Creación de la clase Timer... 1 Ejercicio 2: Sincronizar el acceso a un objeto I... 3 Ejercicio 3: Sincronizar el acceso a un objeto II... 3 Ejercicio 4: Movimiento oscilatorio de un objeto en la pantalla... 4 Ejercicio 5: Introducción de la técnica del doble buffer en la clase OscilaCanvas... 5 Antes de comenzar la práctica abre el Windows Explorer y comprueba que se ha creado de modo automático en tu disco G:\ un directorio llamado Inf2prac12. No deberás moverlo a otro subdirectorio ni cambiarle de nombre. Por motivos de orden es importante que todos los ejercicios de esta práctica se creen dentro de este directorio, porque esta semana se recogerá la práctica. Como recomendación general, mantén abierto el Windows Explorer y comprueba de vez en cuando que los proyectos de los distintos ejercicios se están guardando correctamente. Hay que evitar copiar los ejercicios de otra persona, principalmente porque así no se aprende a programar: a programar sólo se aprende programando. Puedes utilizar también Windows Explorer para ayudar a Visual J a crear un proyecto nuevo a partir de los ficheros del anterior. Ejercicio 1: Creación de la clase Timer En este ejercicio se trata de crear una clase denominada Timer que actúe de una forma similar al objeto Timer que aparece en el entorno de programación Visual Basic. Consistía en incluir un objeto Timer en algún módulo o formulario del proyecto y programar una función Timer_NombreTimer() que se ejecutaba cada cierto número de milisegundos (propiedad Interval). Existía además la posibilidad de pararlo o arrancarlo nuevamente con la propiedad Enabled (valores true o false). Crea un proyecto llamado Ejer1 dentro de G:\Inf2Prac12 y guarda en él los ficheros que vayas creando. La clase Timer (se guardará en un fichero llamado Timer.java) se deberá encargar de ejecutar cada cierto número de milisegundos el método timer() implementado por otras clases. Se creará una interface llamada ITimer con un único método void timer() el cual deberá ser implementado por aquellas clases que deseen tener una función que se ejecute repetidamente. A continuación se muestra la interface ITimer: // interface ITimer.java public interface ITimer{ public void timer(); Las variables miembro de la clase Timer serán: // función a implementar private Thread t; // thread utilizado para ejecutar el método run() private String name; // nombre del Timer private long interval; // intervalo de tiempo entre ejecuciones private boolean enabled; // propiedad para indicar si está activo private ITimer func; // referencia a la clase que contiene el método // timer() a ejecutar Implementará la interface Runnable de forma que el thread t ejecutará el método run() de esta clase Timer. El constructor de Timer ( public Timer(String nombre, ITimer func) ) recibirá como argumento una referencia a un objeto que implemente la interface ITimer. Será el método run() de la clase Timer el encargado de llamar a la función timer() de esa referencia (func)
3 Informática 2: Práctica nº 12 página 2 con el intervalo de tiempo indicado por la variable interval. Además deberá definir los siguientes métodos públicos: String getname() /** devuelve el nombre del Timer */ void setinterval(long i) /** se asigna el intervalo en milisegundos*/ long getinterval() /** se lee el intervalo en milisegundos*/ void setenabled(boolean val) /** se para o arranca el thread */ void run() /** método principal de Timer */ Se creará un fichero PruebaTimer.java desde donde se probará la clase Timer junto con la interface ITimer. Esta clase contiene el programa principal main(). Como el entorno Visual J++ cierra la consola y la aplicación en cuanto termina la ejecución, sin permitir ver con calma los resultados, se ha incluido una espera por medio de un mensaje y la lectura de un carácter, que debe producirse antes de terminar la aplicación. El fichero es el siguiente: // fichero PruebaTimer.java // prueba de la clase Timer public class PruebaTimer implements ITimer{ private Timer mitimer; private int n=0; public PruebaTimer(){ mitimer = new Timer("MiTimer",this); // método para arrancar el Timer public void arranca(){ mitimer.setenabled(true); // método que se ejecuta cada intervalo de tiempo public void timer(){ n++; System.out.println("Ejecutado "+n+" veces..."); if(n==5){ // cuando n llega a 5 duplicamos la velocidad mitimer.setinterval(mitimer.getinterval()/2); if(n==20){ // cuando n llega a 20 paramos el Timer mitimer.setenabled(false); System.out.println("paramos el timer..."); /** inicio del programa */ public static void main(string[] args) { PruebaTimer mt = new PruebaTimer(); mt.arranca(); // se espera a pulsar Intro para terminar try { while ((Thread.currentThread().activeCount() )> 1) { Thread.currentThread().sleep(200); System.out.print("Pulse return para finalizar "); System.in.read(); catch (java.io.ioexception e) { catch (InterruptedException ie) { // fin del método main // fin de la clase PruebaTimer
4 Informática 2: Práctica nº 12 página 3 Ejercicio 2: Sincronizar el acceso a un objeto I El uso de varios threads o hilos puede enriquecer mucho un programa permitiendo realizar varias tareas simultáneamente. Pero a su vez si en un programa coexisten más de un thread la programación se complica. Por un lado es necesario estudiar el impacto que puede tener el hecho de que dos o más threads puedan modificar o acceder simultáneamente a las variables de un mismo objeto o clase. Por otro, hay que tener en cuenta la sincronización de varios threas ya que se puede llegar un punto donde un thread tenga que esperar a que otros finalicen una tarea antes de que aquel pueda continuar (por ejemplo que un segundo thread termine de leer un fichero). En este ejercicio se va a presentar un ejemplo del primer caso, es decir de accesos y modificaciones simultáneas. Crea un proyecto llamado Ejer2 con Visual J++ en el directorio de la práctica Inf2prac12. Copia a este directorio los ficheros VectorTest.java y VectorSinc.java que se encuentran en Q:\Infor2\Prac12\Ejer2. El fichero VectorSinc.java incluye un vector cuyos métodos no están sincronizados. El constructor de la clase ( public VectorSinc(int n) ) crea un vector de tamaño n y le asigna valores de 1 a n. Tiene dos métodos: el método showvals() muestra por pantalla los valores del vector y el método reversevals() invierte el orden de los números. El funcionamiento deseado del programa es que los valores del vector estén siempre ordenados de 1 a n o de n a 1. Si el programa tuviera un sólo thread no habría ningún problema ya que sólo se podría ejecutar un método simultáneamente. Pero, qué pasa si hay dos o más threads actuando sobre un mismo objeto de la clase VectorSinc? El funcionamiento puede ser incorrecto ya un thread puede estar modificando los valores utilizando reversevals() y otro puede estar leyendo los valores con showvals() sin terminar de modificar. Incluso se puede dar el caso de que dos threads intenten invertir el orden de los valores simultáneamente con lo que el resultado es impredecible. En la función reversevals() se ha incluido un sleep() para poder observar el mal funcionamiento ya que debido al poco tiempo que tardaría en ejecutarse esta función habría pocas posibilidades (aunque no nulas) de que ocurriera. Ejecuta varias veces el programa VectorTest.java y observa su funcionamiento. Verás que muchas veces los valores no salen ordenados. Modifica el fichero VectorSinc.java incluyendo a los dos métodos el indicador synchronized. De esta forma se consigue que no puedan ejecutarse simultáneamente dos métodos sobre un mismo objeto de la clase VectorSinc. Si mientras un thread ejecuta el método reversevals() o showvals() el otro intenta ejecutar uno de los dos métodos este último se quedará bloqueado hasta que el primero haya finalizado la ejecución del método. Vuelve a ejecutar varias veces el programa VectorTest. En este caso los valores deberían aparecer siempre correctamente. Es importante tener en cuenta que si se añade un método a la clase que no esté sincronizado éste siempre se puede ejecutar aunque en ese mismo momento se esté ejecutando un método sincronizado. Prueba a quitar la palabra synchronized del método showvals() y ver qué ocurre. Ejercicio 3: Sincronizar el acceso a un objeto II En este ejercicio se presenta el caso de un thread que llega a un punto donde los datos a leer no se encuentran preparados y tiene que esperar por ellos. Crea un proyecto llamado Ejer3 con Visual J++ en el directorio de la práctica Inf2prac12. Copia a este directorio los ficheros Bandeja.java, Cocinero.java, Comensal.java, y Restaurante.java que se encuentran en Q:\Infor2\Prac12\Ejer3. A partir del nombre de los ficheros es fácil adivinar sobre qué tema está basado el ejercicio. Se trata de un restaurante donde como es habitual el cocinero tarda un tiempo en preparar los
5 Informática 2: Práctica nº 12 página 4 distintos platos. El comensal (es uno de los threads) pide (método get() de Bandeja) un plato a un objeto Bandeja y si no hay un plato preparado debe esperar (método wait()) a que esté preparado por el cocinero (otro thread) quién pondrá el plato en la bandeja utilizando el método put() de Bandeja. La condición que indica si hay un plato preparado es el estado de preparado, variable miembro de la clase Bandeja. Obsérvese que si preparado es false, el método get() detiene el thread (llamando a wait()) hasta que se llame al método notify() o notifyall() de la clase Bandeja. Es el método put() quién llama a notifyall() una vez preparado el plato y después de asignar preparado = true. En este ejercicio se pide leer detenidamente y comprender el código de las distintas clases. El método wait() espera indefinidamente a que sea llamado el método notify() o notifyall(). Cambia el método wait() por wait(1000) y comprueba qué sucede. En este segundo caso este método esperará como máximo (si no se llama antes a notify() o notifyall()) 1000 milisegundos volviéndose a comprobar nuevamente si preparado es true. Ejercicio 4: Movimiento oscilatorio de un objeto en la pantalla En este ejercicio se trata de crear un applet que represente un movimiento oscilatorio. Un applet es una aplicación que se ejecuta en un browser al cargar una página HTML que contiene las tags <APPLET > </APPLET>. Tal y como se indica en el manual los applets no tienen ventana propia sino que es el browser quién les asigna un panel donde dibujar. Otra notable diferencia es la forma de arrancar el programa: mientras que en las aplicaciones "independientes" comienzan por el método main(), las applets comienzan por el método init() de la clase Applet. El browser crea un objeto de la clase derivada de Applet, llama al método init() y posteriormente al método start(), ambos de la clase Applet. No se llama por lo tanto al constructor de la clase. La labor que normalmente realiza el constructor se debe pasar a la función init(). La clase Applet deriva de Panel y por lo tanto hereda todas los métodos gráficos. Crea un proyecto llamado Ejer4 con Visual J++ en el directorio de la práctica G:\Inf2prac12. Copia a este directorio los ficheros Timer.java e ITimer.java realizados en el primer ejercicio de esta práctica. Estos ficheros serán utilizados para realizar la animación. Crea una nueva clase llamada Oscila (en un fichero Oscila.java) que herede de la clase Applet. Crea también un fichero llamado AppletOscila.html e incluye el código necesario para ejecutar Oscila.class como applet. El objeto móvil se dibujará en una nueva clase llamada OscilaCanvas (derivada de Canvas) la cual será añadida al panel del applet. Esta clase OscilaCanvas tendrá el método public void dibujar(long t) que se encargará de llamar al método paint() una vez actualizada la variable time que será miembro de la clase OscilaCanvas. La posición del móvil se evaluará mediante el método getx() que deberá ser miembro de OscilaCanvas (la variable tiempo estará expresada en milisegundos): // método que define el movimiento horizontal public int getx(long t) { return (int)(100*math.sin(1.5*t/1000)); La clase Oscila tendrá una variable miembro que represente el tiempo en milisegundos de la animación. Además creará un objeto de tipo Timer para realizar la animación. Deberá implementar la interface ITimer y por lo tanto definir el método timer(). Este método aumentará el tiempo y llamará al método dibujar() de la clase OscilaCanvas pasándole dicho tiempo Se incluirá un botón de forma que sea posible detener y arrancar el móvil.
6 Informática 2: Práctica nº 12 página 5 Figura 1. Visualización de movimiento oscilatorio utilizado como aplicación Además de poder funcionar como applet, es habitual en muchos casos incluir el método main() que posibilite ejecutar la clase derivada de Applet como una aplicación fuera de un navegador. En este caso el método main() debe realizar las labores que realiza el browser, esto es: crear una ventana donde incluir el applet, crear un objeto de ese tipo, llamar a su método init() y por último llamar al método start(). Copia la clase VentanaCerrable.java a la carpeta del proyecto, incluye en la clase Oscila el siguiente código y pruébalo como aplicación (ver Figura 1): // se define un programa principal para poder // ejecutarse como aplicación public static void main(string []args) { // se crea un frame (no se puede derivar de VentanaCerrable) VentanaCerrable vc = new VentanaCerrable("Applet como aplicación"); vc.setsize(300, 200); vc.setlocation(100, 100); // se crea un objeto de la clase que deriva de Applet // se recuerda que los applets descienden de Panel Oscila osc = new Oscila(); // se añade el applet a la zona centro del frame vc.add(osc, "Center"); // se llama a los métodos fundamentales del applet osc.init(); osc.start(); // se muestra la ventana vc.show(); // fin método main() Ejercicio 5: Introducción de la técnica del doble buffer en la clase OscilaCanvas Este ejercicio es muy similar al anterior. Crea un proyecto llamado Ejer5 y copia en él todos los ficheros del ejercicio anterior. Se trata de modificar la clase OscilaCanvas de forma que la animación se realice utilizando la técnica del doble buffer. Esta técnica consiste en no pintar directamente sobre el componente que se encuentra en la pantalla sino que se pinta sobre una imagen sin mostrar. Una vez que se ha finalizado de "construir" la imagen, está se mostrará directamente sobre el componente. De esta forma se consigue una notable mejora en el parpadeo de las imágenes al redibujar. A su vez de debe redefinir el método update() para que no borre la anterior imagen.
3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD
3UiFWLFD 3URJUDPDFLyQ-DYD San Sebastián, mayo 1999 -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD Informática 2: Práctica nº 13 página 1 INDICE Ejercicio
Más detallesTema 6. Threads: programas multitarea
Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos
Más detalles3URJUDPDFLyQ-DYD. 3UiFWLFDYLHUQHV. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD
3UiFWLFDYLHUQHV 3URJUDPDFLyQ-DYD San Sebastián, mayo 1999 -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD Informática 2: Práctica nº 14 (viernes) página
Más detalles3URJUDPDFLyQ-DYD. 3UiFWLFDPDUWHV. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD
3UiFWLFDPDUWHV 3URJUDPDFLyQ-DYD San Sebastián, mayo 1999 -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD Informática 2: Práctica nº 14 (martes) página
Más detallesProgramación concurrente en Java
Diseño Y Aplicaciones de Sistemas Distribuidos Programación concurrente en Java Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Threads en
Más detallesEjecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).
Ejecución de hebras En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura). Hebras vs. Procesos Los cambios de contexto son más costosos en
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesProf. Dr. Paul Bustamante
Nombre: Carné: Examen C++ - Junio Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Examen Grupo B Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1:
Más detallesClase adicional 2. Estructuras básicas de control. Temas
Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño
Más detallesUniversidad Autónoma de Baja California Facultad de Ingeniería Apuntes de Programación Orientada a Objetos I
Hilos Universidad Autónoma de Baja California Hasta el momento los programas que se han estado manejando en el curso han sido secuenciales. Esto es, inician en un punto y continuan su ejecución de manera
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesUPM Concurrencia en Java
UPM Concurrencia en Java Juan Antonio de la Puente DIT/UPM Hebras (threads) Una hebra es un objeto de una subclase de java.lang.thread o una implementación de la interfaz Runnable El código que ejecuta
Más detallesProgramación Java. Práctica 11. Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García
Práctica 11 Programación Java San Sebastián, mayo 1999 Javier García de Jalón José Ignacio Rodríguez Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Informática 2: Práctica nº 11 página 1 INDICE
Más detallesNormalmente, los programas son ejecutados de forma secuencial. Único flujo de control
Hilos BUAP Introducción Normalmente, los programas son ejecutados de forma secuencial Único flujo de control Un programa con un único flujo de control, ejecuta sólo una tarea (hilo) Dr. Ivan Olmos 2 Introducción
Más detallesDesarrollo de aplicaciones gráficas
Desarrollo de aplicaciones gráficas M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Febrero de 2006 Aplicaciones gráficas en Java Estas aplicaciones pueden dividirse
Más detallesLaboratorio I Java Threads (Silberschatz Galvin)
Laboratorio I Java Threads (Silberschatz Galvin) Un proceso es un programa ejecutandose dentro de su propio espacio de direcciones. Java es un sistema multiproceso, esto significa que soporta varios procesos
Más detallesEVALUACIÓN DE DIAGNÓSTICO GUÍA PARA LA APLICACIÓN ON LINE
CURSO 2009/2010 EVALUACIÓN DE DIAGNÓSTICO En este documento se describe: 1. Cómo acceder a la aplicación informática 2. El procedimiento a seguir para la realización de las pruebas 3. El acceso a los resultados
Más detallesDaVinciTEXTIL. Codificación de artículos
Codificación de artículos El código de los artículos, consta de un máximo de 10 caracteres alfanuméricos Antes de empezar a codificar los artículos/materiales se debe tener en cuenta que el sistema permite
Más detallesThreads o Hilos. Un thread en JAVA comienza como una instancia de java.lang.thread antes de convertirse en un hilo de ejecución.
Threads o Hilos 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 los datos. En cierta
Más detallesTema 3. Programación orientada a objetos en Java (Parte 1)
Programación en Java Tema 3. Programación orientada a objetos en Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Clases y objetos (I) Clase Cojunto de datos (atributos) y funciones (métodos)
Más detallesBENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS
Más detallesGUÍA PARA LA CREACIÓN DE OBJETOS DE APRENDIZAJE DIGITALES: SIMULACIONES NUMÉRICAS INTERACTIVAS CON CÁLCULO
GUÍA PARA LA CREACIÓN DE OBJETOS DE APRENDIZAJE DIGITALES: SIMULACIONES NUMÉRICAS INTERACTIVAS CON CÁLCULO Los laboratorios virtuales, son simulaciones numéricas interactivas con cálculo realizadas en
Más detallesEJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)
APRENDERAPROGRAMAR.COM EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B) Sección: Cursos Categoría: Curso Aprender programación Java desde
Más detallesManual de Instalación
Manual de Instalación Declaración de Envases Versión 2015 Octubre 2015 VERSIÓN 2015 Página 1/15 Antes de Empezar Lea atentamente las instrucciones contenidas en este Manual de Instalación. Si desea realizar
Más detallesProgramación 2. Grado en Estadística Aplicada. Curso 2012-2013. Generación de números pseudoaleatorios. Manejo de ficheros de texto.
Programación 2 Grado en Estadística Aplicada Curso 2012-2013 Generación de números pseudoaleatorios. Manejo de ficheros de texto. Jesús Correas jcorreas@fdi.ucm.es Departamento de Sistemas Informáticos
Más detallesCopias de seguridad y recuperación Guía del usuario
Copias de seguridad y recuperación Guía del usuario Copyright 2009 Hewlett-Packard Development Company, L.P. Windows es una marca comercial registrada de Microsoft Corporation en los Estados Unidos. Aviso
Más detallesTema 7: Polimorfismo. Índice
Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento
Más detallesPráctica 4 Concurrencia en Java
Práctica 4 Concurrencia en Java Escuela de Ingeniería y Arquitectura Depto. de Informática e Ingeniería de Sistemas 1. Objetivos 1. Crear y manipular hilos de ejecución en Java 2. Utilizar monitores en
Más detallesTema 12: Programación multihilo
Tema 12: Programación multihilo Antonio J. Sierra Índice 1. Modelo de hilo en Java. 2. El hilo principal. 3. Creación de un hilo. 4. Creación de múltiples hilos. Prioridades. 5. Comunicación entre hilos.
Más detallesCopias de seguridad y recuperación Guía del usuario
Copias de seguridad y recuperación Guía del usuario Copyright 2008 Hewlett-Packard Development Company, L.P. Windows y Windows Vista son marcas comerciales o marcas registradas de Microsoft Corporation
Más detallesINTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)
APRENDERAPROGRAMAR.COM INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
Más detallesINTRODUCCIÓN 3 REQUISITOS DEL SISTEMA..4 DESCARGA DEL SOFTWARE...5 PASOS DE LA INSTALACIÓN 7. Consideraciones..12
Índice INTRODUCCIÓN 3 REQUISITOS DEL SISTEMA..4 DESCARGA DEL SOFTWARE....5 PASOS DE LA INSTALACIÓN 7 Consideraciones..12 Instalación componentes adicionales...14 Mensajes durante la instalación de MDAC_TYP.17
Más detallesProcesamiento paralelo con hilos de Java
Procesamiento paralelo con hilos de Java Tabla de contenidos 1. Soporte para hilos en Java... 1 2. Creación y control de un hilo... 2 2.1. Métodos de creación de un hilo... 2 2.2. Control de hilos mediante
Más detallesCategorías de métodos. Métodos constructores y destructores
1. Categorías de los métodos 2. Inicialización de miembros 3. Métodos constructores 4. Inicialización de objetos con y sin constructores 5. Sobrecarga de funciones constructoras 6. Argumentos implícitos
Más detallesEjemplo. class SiNoThread extends Thread { private String SiNo; static int Contador = 0; public SiNoThread(String s) { super(); SiNo = s; }
Qué son los threads? Todos los programadores conocen lo que es un proceso, la mayoría diría que es un programa en ejecución: tiene un principio, una secuencia de instrucciones y tiene un final. Un thread
Más detallesLa sintaxis básica para definir una clase es la que a continuación se muestra:
DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría
Más detallesINTRODUCCIÓN A VISUAL BASIC
INTRODUCCIÓN A VISUAL BASIC Lenguaje de programación basado en objetos y dirigido por eventos (o sucesos), desarrollado por el alemán Alan Cooper para el entorno Windows de Microsoft. Es un lenguaje de
Más detalles1 HILOS (THREADS) EN JAVA
1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los
Más detallesProgramación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas
Programación concurrente en Java. Breve introducción Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas Concurrencia en Java Hilos de ejecución Clase Thread e interfaz Runnable Pausas Interrupciones
Más detallesAyuda. Mensajes del sistema. Iniciar/Cerrar sesión. Iconos del panel de control
Ayuda Para obtener información y asistencia, compruebe lo siguiente: Guía del usuario para obtener información sobre el uso del sistema Xerox 4595. Para obtener asistencia en línea, vaya a: www.xerox.com
Más detallesProdigy Antivirus. Paso 1. Importante! Desinstalar otros antivirus
Prodigy Antivirus Paso 1. Importante! Desinstalar otros antivirus Si tienes algún otro antivirus instalado o tienes la versión anterior del Antivirus de Prodigy asegúrate de que éste se ha desinstalado
Más detallesManual del Usuario de Microsoft Access Consultas - Página 1. Tema IV: Consultas. IV.1. Creación de Consultas
Manual del Usuario de Microsoft Access Consultas - Página 1 Tema IV: Consultas IV.1. Creación de Consultas La potencia real de una base de datos reside en su capacidad para mostrar los datos que se desea
Más detallesProgramación Orientada a Eventos
Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado
Más detallesINTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Índice Paso de parámetros en tiempo de ejecución Métodos static Atributos static Try-catch-finally Throws/throw 2 Paso de
Más detallesProgramación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos
Más detalles3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD
3UiFWLFD 3URJUDPDFLyQ-DYD San Sebastián, marzo 1999 -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD Informática 2: Práctica nº 4 página 1 ÍNDICE 1. Práctica
Más detallesDiseño de algoritmos paralelos
PROGRAMACIÓN CONCURRENTE TEMA 7 Diseño de algoritmos paralelos ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN DISEÑO DE ALGORITMOS PARALELOS - TEMA 7.2 Algoritmos
Más detallesCianoplanJS. Manual de instalación y uso. 23 de noviembre de 2005. 2. Requisitos para la instalación de CianoplanJS 2
CianoplanJS Manual de instalación y uso 23 de noviembre de 2005 Índice 1. Introducción 2 2. Requisitos para la instalación de CianoplanJS 2 3. Instalación del programa 2 4. Uso de CianoplanJS para separar
Más detallesProgramación concurrente Hebras
20151021 dit UPM Programación concurrente Hebras Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons Reconocimiento-NoComercial-Compar9rIgual
Más detallesPERIODO 2 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS BASICOS DE MICROSOFT ACCESS
PERIODO 2 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS BASICOS DE MICROSOFT ACCESS CONTENIDOS INICIAR MICROSOFT ACCESS CERRAR MICROSOFT ACCESS LA PANTALLA INICIAL DE MICROSOFT ACCESS CREAR UNA BASE DE
Más detallesGuía rápida de instalación de i-card Loyalty 5.0. Contenido
Página1 Contenido INTRODUCCIÓN... 2 INSTALACIÓN MAIN SITE... 3 Instalación del lector de tarjeta... 3 Instalación de las aplicaciones... 3 INSTALACIÓN SITE... 5 CONFIGURACIÓN... 6 Lectores de Tarjeta...
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 4 Fundamentos de Programación Informática II Prof. Dr. Paul Bustamante Practica Nº 4 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Números Perfectos....
Más detallesIntroducción a las sentencias de control
INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:
Más detallesEn este capitulo se estudiarán los conceptos relacionados a métodos, como lo son sobrecarga, métodos estáticos.
Lección 3: Creando clases 1. Definición de métodos 2. Sobrecarga de métodos 3. Definición de constructores 4. Creando miembros estáticos 5. Construcción e inicialización de objetos Objetivos En este capitulo
Más detallesProgramas Secuenciales, Interactivos Y Orientados A Eventos
Programación orientada a Eventos Introducción A La Programación Orientada A Eventos. Los lenguajes visuales orientada al evento y con manejo de componentes dan al usuario que no cuenta con mucha experiencia
Más detallesImportante Recuerda que el espacio en disco asignado a las carpetas IMAP está limitado. Sólo podrás subir mensajes si queda espacio suficiente.
MS. OUTLOOK 2007: CONFIGURAR UNA CUENTA IMAP CON DOMINO DE CORREO @UJAEN.ES Vicerrectorado de Tecnologías de la Información y Comunicación - Servicio de Informática Este documento explica cómo comenzar
Más detallesBENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:
Más detallesGuía práctica de estudio 12: Hilos
: Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 12: Objetivo: Implementar el concepto de multitarea utilizando
Más detallesGuillermo Román Díez
Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia
Más detallesCreación de una Base de datos
Creación de una Base de datos Para poder crear una Base de datos es necesario abrir phpmyadmin desde el menú de WampServer al cual se accede con clic derecho en el icono de WampServer o ingresando a la
Más detallesFormularios Electrónicos. Manual de Usuario del Profesional
Formularios Electrónicos Manual de Usuario del Profesional Sectorial de Informática del Ministerio de Justicia y Derechos Humanos 1/14 Función que desempeña el usuario Profesional habilitado. Propiedad
Más detallesPráctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++
Práctica 1: Una primera aproximación a la programación de sistemas concurrentes y distribuidos en C++ Programación de Sistemas Concurrentes y Distribuidos Dpto. de Informática e Ingeniería de Sistemas,
Más detalles2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Más detallesJava Threads. Sistemas Distribuidos Rodrigo Santamaría
Java Threads Sistemas Distribuidos Rodrigo Santamaría Java Threads Hilos Sincronización Ejercicios FAQ 2 3 Hilos Un hilo (Thread) es un proceso en ejecución dentro de un programa java main Thread t t.start()
Más detallesCopias de seguridad y recuperación Guía del usuario
Copias de seguridad y recuperación Guía del usuario Copyright 2008 Hewlett-Packard Development Company, L.P. Windows es una marca comercial registrada de Microsoft Corporation en los Estados Unidos. Aviso
Más detallesMANUAL DE POSTULACIÓN EN LÍNEA PROGRAMA DE MOVILIDAD ESTUDIANTIL ESTUDIOS PARCIALES EN EL EXTRANJERO
MANUAL DE POSTULACIÓN EN LÍNEA ESTUDIOS PARCIALES EN EL EXTRANJERO Dirección de Relaciones Internacionales Universidad de Chile INTRODUCCIÓN El sistema de Postulación en línea es una herramienta que la
Más detallesCLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C)
APRENDERAPROGRAMAR.COM CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesEjemplo de GUI con Swing
Ejemplo de GUI con Swing Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Una aplicación Swing sencilla El
Más detallesManual de instalación AUTOFIRMA LA SEDE ELECTRÓNICA XUNTA DE GALICIA GUÍAS DE AYUDA DE
GUÍAS DE AYUDA DE LA SEDE ELECTRÓNICA XUNTA DE GALICIA Manual de instalación AUTOFIRMA Páxina 2 de 17 Contenido 1. INTRODUCCIÓN... 3 2. REQUISITOS MÍNIMOS... 4 3. INSTALACIÓN... 5 3.1. Microsoft Windows...
Más detallesProgramación Concurrente y de Tiempo Real Guión de prácticas 8: Monitores en Java (API. Natalia Partera Jaime Alumna colaboradora de la asignatura
Programación Concurrente y de Tiempo Real Guión de prácticas 8: Monitores en Java (API estándar) Natalia Partera Jaime Alumna colaboradora de la asignatura Índice 1. Introducción 2 2. Monitores 2 2.1.
Más detallesManual de la solicitud de alta de cuenta de correo.
Manual de la solicitud de alta de cuenta de correo. Este servicio posibilita que el Personal de la Universidad pueda presentar de forma telemática la solicitud de creación de una cuenta de correo, ya sea
Más detallesModulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Más detallesExamen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
Más detallesEDITOR DE TEXTO DE MOODLE
Primera fila EDITOR DE TEXTO DE MOODLE Para qué sirve? El Editor de texto del aula está presente en todo lugar en el que el usuario debe escribir unas líneas, por ejemplo el formulario en el que el profesor
Más detallesFirma digital de actas académicas
Versión: v01r002 Fecha: 12/06/2012 Queda prohibido cualquier tipo de explotación y, en particular, la reproducción, distribución, comunicación pública y/o transformación, total o parcial, por cualquier
Más detallesIngeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
Más detallesIntroducción a los Threads Java
75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2014 Facultad de Ingeniería Universidad de Buenos Aires Introducción a los Threads Java Para crear un nuevo Thread Se extiende la clase
Más detallesUnidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia
Más detallesProgramación orientada a objetos III
Ingeniería en Desarrollo de software Semestre 05 Asignatura: Programación orientada a objetos III Clave: 16142524 Universidad Abierta y a Distancia de México 1 Índice PRESENTACIÓN DE LA UNIDAD... 3 PROPÓSITOS
Más detallesMétodos. Los métodos pueden ser de un tipo específico como int, double, String, Cuenta, etc. o simplemente no tener algún tipo como void.
Métodos Los métodos son utilizados para definir un grupo de instrucciones que son separadas y que definen un comportamiento, que requieren en algunos casos de valores para su proceso. Un método es algo
Más detallesITE. Inspección Técnica de la Edificación MANUAL DE USUARIO
MANUAL DE USUARIO HOJA DE CONTROL DE DOCUMENTO Documento: AyudaITE Denominación: Manual de usuario de ITE CONTROL DE MODIFICACIONES Versión Fecha Comentarios Autor 1.0.0 16/04/2012 Edición preliminar Juan
Más detallesBALANCED SCORECARD. Proceso de Sincronización Tablero de Indicadores. Cartilla I
BALANCED SCORECARD Proceso de Sincronización Tablero de Indicadores Cartilla I Tabla de Contenido 1. Presentación 2. Qué es Sincronizar? 3. Cómo se Realiza el Proceso de Sincronización del Tablero de Indicadores?
Más detallesCrea una tabla para los ingredientes. No olvides añadir la clave principal. Recuerda también añadir el prefijo con el nombre de la tabla a los campos.
TABLA INGREDIENTES Crea una tabla para los ingredientes. No olvides añadir la clave principal. Recuerda también añadir el prefijo con el nombre de la tabla a los campos. IMPORTAR DATOS A LA TABLA INGREDIENTES
Más detallesCONFIGURACIÓN DE IMPRESORAS
CONFIGURACIÓN DE IMPRESORAS Los dos métodos más utilizados en el proceso de configuración de impresoras son: 1. Manejo de simulador de terminal (letra SIIGO): Este es un método donde se simula que todas
Más detallesHOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Más detallesManual Facturación WEB
Manual Facturación WEB Índice: 1. Introducción. 2. Proceso de Facturación: a. Página Principal: Sus Proyectos. b. Sus Datos Fiscales y de Pago. c. Número de Factura y Vista Previa de Factura. 1. Introducción.
Más detallesDeclaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)
aprenderaprogramar.com Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión:
Más detallesThreads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.
Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:
Más detallesManual de instalación AutoFirma 1.4.2
Manual de instalación AutoFirma 1.4.2 Fecha: 31/05/2016 Versión: 1.0 Índice 1. Introducción... 2 2. Requisitos mínimos... 3 2.1. Sistema Operativo... 3 2.2. Navegadores Web... 3 3. Enlaces de descarga...
Más detallesObjetos Gráficos. Hay disponible una galería de imágenes prediseñadas y también ofrece la posibilidad de agregar imágenes almacenadas en un archivo.
Trataremos los siguientes temas: Objetos Gráficos Objetos gráficos Gráficos En las planillas de cálculo no todo es texto o números. También se pueden agregar ilustraciones, imágenes que te permitirán "decorar"
Más detalles1.4. CONFIGURAR PRESENTACIONES PARA SU IMPRESIÓN O GUARDADO
1.4. CONFIGURAR PRESENTACIONES PARA SU IMPRESIÓN O GUARDADO Imprimir presentaciones Una presentación Power Point puede incluir muchos tipos de información; la información de las diapositivas está orientada
Más detallesLABORATORIO 4. Escribir el CÓDIGO y la INTERFAZ GRÁFICA (cuando proceda) de los correspondientes casos prácticos.
LABORATORIO 4 Escribir el CÓDIGO y la INTERFAZ GRÁFICA (cuando proceda) de los correspondientes casos prácticos. NOTA: Según lo acordado en el laboratorio anterior, seguir guardando toda la documentación
Más detallesFlickr es un sitio web donde podremos almacenar y compartir fotografías digitales. Actualmente pertenece a Yahoo!.
Qué es Flickr Flickr es un sitio web donde podremos almacenar y compartir fotografías digitales. Actualmente pertenece a Yahoo!. Y qué tiene de novedoso? Lo que le diferencia del resto es la comunidad
Más detallesMATERIALES Leer previamente la Guía Número 5. Materiales proporcionados por el docente para el desarrollo de la Guía 5.
Tema: Sectorización y Banner web (Slider) CONTENIDOS Creación de sitios locales. Administración de sitios locales. OBJETIVOS ESPECÍFICOS Desarrollo de un banner web, aplicando los conocimientos de webkit
Más detallesProgramación I. Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA)
Programación I Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA) El objetivo de esta práctica es implementar una variedad del juego de los barquitos o hundir la flota. Como sabréis el juego
Más detallesSistemas operativos: ventanas y escritorio. Sonia Lafuente Martínez
Sistemas operativos: ventanas y escritorio. Sonia Lafuente Martínez Elementos de Windows A. Escritorio B. Barra de tareas y Botón de Inicio C. Ventanas A. El Escritorio Barra de Tareas Ejercicio1: Identifica
Más detallesProblemas de Recursividad
Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesJuego de cálculo mental
Scratch 2 Juego de cálculo mental All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code.
Más detalles