Multitarea en Java. Rafa Caballero - UCM
|
|
- Esteban Acuña Montes
- hace 8 años
- Vistas:
Transcripción
1 Multitarea en Java Rafa Caballero - UCM
2 Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single threading).
3 Programa multiproceso En algún punto el programa se divide en varios procesos (threads) que se ejecutan (aparentemente) de manera simultánea Programa multiproceso, multitarea, multihebra (o multithreading)
4 Para qué? Programas que tengan que realizar varias tareas de manera simultánea Programas en los que la ejecución de una parte requiera tiempo y no deba detener el resto del programa
5 Rafa Caballero - U Para qué? Ejemplo 1 Programa que controla sensores en una fábrica: Los procesos que se encargan de controlar sensores diferentes son independientes y los sensores deben controlarse de manera simultánea Temperatura Combustible Programa Presión Tiempo
6 Para qué? Ejemplo 2 Durante la impresión de un documento (tarea que puede tomar tiempo) el programa puede y debe continuar ejecutándose. Programa
7 Multitarea en Java Idea: Definir clases especiales para las tareas que requieran ejecutarse en una hebra de ejecución (thread) separada Estas clases deben incluir la función especial public void run(), equivalente a main() pero para hebras Los objetos de la clase serán inicializados desde otra clase con el método start()
8 Rafa Caballero - U Clase para multitarea 2 Métodos: Mediante herencia (extensión) de la clase java.lang.thread Mediante la implementación del interfaz java.lang.runnable
9 Ejemplo: extensión de Thread El programa irá escribiendo dos sucesiones ascendentes de números simultáneamente Una hebra por cada contador
10 Ejemplo: Contadores (Versión 1) class Contador extends Thread { private int inicio,fin; // valor inicial y final del contador private String nombre; // nombre de la hebra // constructor con los valores iniciales y final y el nombre public Contador(int desde, int hasta, String id) { inicio = desde; fin = hasta; nombre = id; } // función principal public void run() { System.out.println(nombre+ " empieza..."); for (int i = inicio; i <= fin; i++) { System.out.print (nombre+" dice: "+i + ". "); try{ sleep(10); // paramos una centesima de segundo } catch (InterruptedException e) { e.printstacktrace(); } } System.out.println(nombre + " acaba."); } Rafa Caballero - U
11 Ejemplo: Contadores (Versión 1) // clase principal: esta clase inicializara las hebras public class principal { static public void main(string[] args) { // al declararlas NO comienzan Contador hebraa = new Contador(1, 10, "HebraA"); Contador hebrab = new Contador(20, 30, "HebraB"); System.out.println("Vamos a iniciar las dos hebras"); // ahora comienzan hebraa.start(); hebrab.start(); System.out.println("Hebras inicializadas"); // hacemos un poco de tiempo antes de despedirnos for (int i=0; i< ; i++) ; System.out.println("Programa principal terminado"); } } // principal
12 Ejemplo: contadores Una ejecución del programa: Vamos a iniciar las dos hebras Hebras inicializadas HebraA empieza... HebraA dice: 1. HebraB empieza... HebraB dice: 20. HebraA dice: 2. HebraB dice: 21. HebraA dice: 3. HebraB dice: 22. HebraA dice: 4. Programa principal terminado HebraB dice: 23. HebraA dice: 5. HebraB dice: 24. HebraA dice: 6. HebraB dice: 25. HebraA dice: 7. HebraB dice: 26. HebraA dice: 8. HebraB dice: 27. HebraA dice: 9. HebraB dice: 28. HebraA dice: 10. HebraB dice: 29. HebraA acaba. HebraB dice: 30. HebraB acaba.
13 Ejemplo: contadores Vamos a iniciar las dos hebras Hebras Inicializadas HebraA empieza HebraA dice:1 HebraA dice:2 HebraA dice:3 HebraA dice:4 HebraA dice:5 HebraA dice:6 HebraA dice:7 HebraA dice:8 HebraA dice:9 HebraA dice:10 HebraA acaba Programa Principal Terminado Hebra B empieza HebraB dice: 20 HebraB dice: 21 HebraB dice: 22 HebraB dice: 23 HebraB dice: 24 HebraB dice: 25 HebraB dice: 26 HebraB dice: 27 HebraB dice: 28 HebraB dice: 29 HebraB acaba
14 Rafa Caballero - U Ejemplo: Interfaz Runnable Se utiliza generalmente cuando la clase ya hereda de otra clase y por tanto no puede heredar de Thread class Hebra extends loquesea implements Runnable { }
15 Ejemplo: Contadores (versión 2) class Contador implements Runnable { private int inicio,fin; // valor inicial y final del contador private String nombre; // nombre de la hebra // constructor con los valores iniciales y final y el nombre public Contador(int desde, int hasta, String id) { inicio = desde; fin = hasta; nombre = id; } public void run() { System.out.println(nombre+ " empieza..."); for (int i = inicio; i <= fin; i++) { System.out.print (nombre+" dice: "+i + ". "); try{ Thread.sleep(10); // paramos una centesima de segundo } catch (InterruptedException e) { e.printstacktrace(); } } System.out.println(nombre + " acaba."); } Rafa Caballero - U
16 Ejemplo: Contadores (versión 2) // clase principal: esta clase inicializara las hebras public class principal { static public void main(string[] args) { // al declararlas NO comienzan Thread Contador hebraa hebraa = new = new Thread Contador(1, (new Contador(1, 10, "HebraA"); 10, "HebraA")); Thread Contador hebrab hebrab = new = Thread new Contador(20, (new Contador(20, 30, "HebraB"); 30, "HebraB")); // ahora comienzan hebraa.start(); hebrab.start(); System.out.println("Hebras inicializadas"); // hacemos un poco de tiempo antes de despedirnos for (int i=0; i< ; i++) ; System.out.println("Programa principal terminado"); } } // principal
17 Comunicación entre hebras La forma de comunicarse consiste usualmente en compartir un mismo objeto Generalmente el objeto se pasa como parámetro en la constructora de la clase hebra
18 Ejemplo: Juego para adivinar un número 4 Árbitro Número: Jugador Rafa Caballero - U
19 Rafa Caballero - U Ejemplo: Juego para adivinar un número 3 Clases: Principal: Inicializa el árbitro y lanza las hebras de los jugadores Árbitro: Contiene el número a adivinar, el turno y muestra el resultado Jugador: Extiende Thread e incluye al árbitro.
20 Rafa Caballero - U Ejemplo: Juego para adivinar un número public class Principal { public static void main(string[] args) { // creamos el árbitro y los jugadores Arbitro arbitro = new Arbitro(3); // 3 jugadores Jugador j1 = new Jugador(1,arbitro); Jugador j2 = new Jugador(2,arbitro); Jugador j3 = new Jugador(3,arbitro); // ponemos a los jugadores en marcha j1.start(); j2.start(); j3.start(); } }
21 Rafa Caballero - U Ejemplo: Juego para adivinar un número class Arbitro { private int totaljugadores; // núm. de jugadores private int turno; // a quién le toca private int numero; // número a adivinar private boolean acabo; // true cuando se haya terminado el juego public Arbitro(int njugadores) {// constructora totaljugadores = njugadores; turno = 1+(int) (totaljugadores*math.random()); numero = 1+(int) (10*Math.random()); // número entre 1 y 10 acabo = false; } public int toca() { return turno; } public boolean seacabo() { return acabo; } public synchronized void nuevajugada(int jugador, int sunumero) { } }
22 Ejemplo: Juego para adivinar un número public synchronized void nuevajugada(int jugador, int sunumero){ if (jugador == toca()) { // ha acertado System.out.println( Jugador +jugador+" dice: "+sunumero); if (sunumero == numero) { System.out.println( Jugador +jugador + " gana!!!"); acabo = true; } else // ha fallado. ver a quien le toca ahora if (turno == totaljugadores) turno = 1; else turno++; } else System.out.println(jugador+" trata de hacer trampa!"); }
23 Ejemplo: Juego para adivinar un número class Jugador extends Thread { Arbitro arbitro; int identificador; public Jugador( int elid,arbitro elarbitro) { arbitro = elarbitro; identificador = elid; } public void run() { while (arbitro.seacabo() == false) { // hasta el fin del juego if (arbitro.toca()==identificador) { // es nuestro turno int jugada = 1+(int) (10*Math.random()); arbitro.nuevajugada(identificador,jugada); } // if } // while } // run }
24 Rafa Caballero - U Ejemplo: Juego para adivinar un número Una ejecución del programa: Jugador 3 dice: 9 Jugador 1 dice: 2 Jugador 2 dice: 6 Jugador 3 dice: 7 Jugador 1 dice: 2 Jugador 2 dice: 5 Jugador 2 gana!!!
25 Ejemplo: Juego para adivinar un número Observaciones: Aunque cada hebra tenga su variable árbitro todas son referencias al mismo objeto Con synchronized se protegen aquellas funciones que no se quiera que se puedan interrumpir por otra hebra
26 Ejercicio: Control de stock Se sabe que a un almacén llegan piezas cada 8 horas. La cantidad de piezas oscila cada vez entre 400 y 1000 Del almacén salen cada 24 horas piezas hacia la fábrica, a un ritmo de entre 2000 y 2500 piezas (todas a la vez) El almacén parte de 8000 piezas y tiene una capacidad máxima de piezas Rafa Caballero
27 Rafa Caballero - U Ejercicio: Control de stock El programa debe simular este proceso parando si: Llega un nuevo cargamento y ya no cabe en el almacén La fábrica necesita piezas pero no hay suficientes piezas en el almacén
28 Ejercicio: Control de stock
29 Rafa Caballero - U Ejercicio: Control de stock Vamos a hacer la simulación con 4 clases: Retirada: Simula retirada de piezas hacia la fábrica. Además escribe el número de días transcurridos desde el comienzo Envío: Simula el envío de piezas al almacén Almacén: Simula el almacén. Tendrá funciones para atender las llegadas y las salidas de piezas. Controlará si hay algún error y mostrará mensajes con el movimiento del almacén Principal: Función main que pondrá en marcha la aplicación
30 Rafa Caballero - U Ejercicio: Control de stock Envío y Retirada heredarán de la clase Thread y compartirán el objeto tipo Almacén. Ambas pararán cuando el Almacén indique que hay un error (bien porque no hay piezas para atender un pedido o porque no caben más piezas y hay un envío)
31 Rafa Caballero - U Ejercicio: Control de stock Para simular el tiempo, las funciones run() de las clases Retirada y Envio incluirán sendas llamadas a sleep: En el caso de Retirada: try{ sleep(2400); // simulación de un día } catch (InterruptedException e) { e.printstacktrace(); } En el caso de Envio: try{ sleep(800); // simulación de 8 horas } catch (InterruptedException e) { e.printstacktrace(); } De está manera habrá 3 envíos por cada retirada
32 Rafa Caballero - U Ejercicio: Control de stock // Estructura de la clase almacén: class Almacen { private final int maximo=20000; // capacidad del almacén private int stock = 8000; // núm. Piezas en el almacén. Al principio 8000 private boolean hayerror = false; // al principio no hay error // Método entrada: carga es la cantidad de piezas que llegan al almacén // si la carga + el stock superan el maximo mostrará un mensaje de error y // pondrá hayerrora true. En otro caso incrementará el stock con la carga public void entrada(int carga) {.} // Método salida: piezas es la cantidad de piezas pedida por la fábrica // Si stock < piezas se mostrará un mensaje de erro y se pondrá // hayerror a true. En otro caso se decrementará el stock en piezas public void salida(int piezas) { } // pedido public boolean error() { return hayerror; } }
33 Ejercicio: Control de stock Día 1 Pedido de 2179 piezas Hay 5821 piezas en el almacén Llegan 744 piezas Hay 6565 piezas en el almacén Llegan 580 piezas Hay 7145 piezas en el almacén Llegan 624 piezas Hay 7769 piezas en el almacén Día 2 Pedido de 2420 piezas Hay 5349 piezas en el almacén... Día 41 Pedido de 2409 piezas Hay 699 piezas en el almacén Llegan 586 piezas Hay 1285 piezas en el almacén Llegan 404 piezas Hay 1689 piezas en el almacén Llegan 462 piezas Hay 2151 piezas en el almacén Día 42 Pedido de 2483 piezas No hay piezas suficientes!
34 Rafa Caballero - U Ejercicio: Control de stock Resultados de 20 simulaciones ª 4ª 7ª 10ª 13ª 16ª 19ª Días hasta quedarse vacío
35 Ejercicio: Control de stock Sugerencia: probar con otros valores Por ejemplo, con 4 envíos por día se comprobará que el almacén se llena en aproximadamente 25 días
Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.
Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución
Más detallesIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir
Más detallesPROGRAMACIÓN EN JAVA
SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan
Más detallesProgramación Concurrente en Java
Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends
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 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 detallesFUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
Más detallesTEMA 5: Control de la Concurrencia en Java (API Estándar)
TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos
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 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 detallesMONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
Más detallesPontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Competencias IIC1103 Introducción a la Programación (I/2010) Interrogación 1 13 de Abril de 2010
Más detalles1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
Más detallesConcurrencia en Android LSUB, GYSC, URJC
Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo
Más detallesPrimer Parcial Septiembre 5 de 2009
Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar
Más detallesFederico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesclass Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }
REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesBenemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto
Más detallesGESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)
APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I
Más detalles11. Algunas clases estándar de Java (II)
122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación
Más detallesTema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Más detallesINTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL. Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones
INTELIGENCIA EN REDES DE COMUNICACIONES PRÁCTICA FINAL BLACKJACK Ignacio Ribas Ramos Miguel Flecha Lozano Ingeniería de Telecomunicaciones 1. Explicación del juego de cartas del Blackjack El Blackjack
Más detallesPruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
Más detallesModelo de Objetos Distribuidos
Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo
Más detallesJava: Programación Multithread
Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto
Más detalles15. Parámetros o argumentos
Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el
Más detallesIngeniería del Software Arquitectura Física en 3 niveles
Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre
Más detallesÍndice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4
Pág.1 Índice ÍNDICE...1 1. EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.)...1 2. EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4 1. Ejercicio 1: Cálculo Financiero (5 ptos.) Desde un banco se le ha encargado
Más detallesNotación UML para modelado Orientado a Objetos
1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3
Más detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesPráctica 4: Java Remote Method Invocation (RMI)
Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado
Más detallesMultitarea En Swing. Varios hilos trabajadores, también conocidos como hilos en segundo plano.
Multitarea En Swing 1.- Introducción. En las aplicaciones Java que usan Swing es particularmente importante manejar con cuidado la concurrencia. Una aplicación Java que usa Swing y que está bien desarrollada
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesCompiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015 1. Introducción Este documento
Más detalles1. Qué tipos de relación hay entre las siguientes clases?
Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia
Más detallesTema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión
Más detalles2. Estructura de un programa en Java
24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador
Más detallesHebras y Sincronización en Java
Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz
Más detallesBenemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto
Más detallesResumen Lenguaje Java
Resumen Lenguaje Java Métodos (Subprogramas) Tipos de Métodos: con resultado y tipo void Definición 1. Método con resultado, retorna un solo valor, equivalente a los subprogramas tipo función tipo_de_dato_a_retornar
Más detallesDISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
Más detallesConcurrencia en Java
Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones
Más detallesPráctica 2: Simón dice
Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detalles8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Más detallesGUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Más detallesIntroducción al lenguaje Java
Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno
Más detallesJava RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid
las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.
Más detallesAhorcado online multijugador
Ahorcado online multijugador Objetivo Que el alumno ponga en práctica los conocimientos teóricos y prácticos adquiridos en la Parte II de la asignatura de Programación Concurrente. La práctica podrá realizarse
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi
Más detallesPartes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.
Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;
Más detallesVARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detalles75-62 Técnicas de Programación Concurrente II 2004 java Threads
75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en http://java.sun.com Un buen libro (algo teórico) es Garg: Concurrent and Distributed
Más detalles2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase?
PRTIIPNT: MPRS: H: xamen de iagnóstico Programador Java Instrucciones: Lea cada pregunta cuidadosamente y marque la(s) respuesta(s) que sean correctas. 1) ada la siguiente clase: 1. class rrayopy3{ 2.
Más detallesEjercicios del tema 7: Clases y objetos
Metodología y Tecnología de la Programación ESI-UCLM Ejercicios del tema 7: Clases y objetos 1. a) Diseñe e implemente en Java una clase para trabajar con triángulos isósceles. Para ello, defina las variables
Más detallesEl lenguaje de programación Java
Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red
Más detallesHilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php
Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy
Más detallesvoid main(void) { string lname; list <string> lnamelist; cout << "Please enter your list of last names finishing with `.`"<<endl;
Segundo Certamen 1.- Haga uso de la información adjunta y desarrolle un programa en C++ que lea apellidos de teclado y los almacene en una lista. Luego se pide listar los apellidos en orden alfabético
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes
Más detallesTrabajo Práctico N 4: Diseño por Contratos
1. Defina los contratos de las siguientes clases: Trabajo Práctico N 4: Diseño por Contratos a. La clase Fecha representa una fecha en el formato dia, mes y año. Especificar los contratos para asegurar
Más detallesJava en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría
Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas
Más detallesPráctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es
Más detallesB 1 PRUEBA DE EXPRESIÓN E INTERACCIÓN ORALES MATERIAL PARA EL CANDIDATO. Examen 00. Versión 1 Septiembre de 2012
PRUEBA DE EXPRESIÓN E INTERACCIÓN ORALES MATERIAL PARA EL CANDIDATO Examen 00 Versión 1 Septiembre de 2012 Página 1 INSTRUCCIONES La prueba de Expresión e interacción orales contiene cuatro tareas: TAREA
Más detallesEstructura de datos tipo vector.
Estructura de datos tipo vector. Hemos empleado variables de distinto tipo para el almacenamiento de datos (variables int, float, String) En esta sección veremos otros tipos de variables que permiten almacenar
Más detallesSergio Peñalba Lopez NIA: 100021533
Autor: Sergio Peñalba Lopez NIA: 100021533 INTRODUCCIÓN CodeRuler es un juego en el que se simula un reino medieval en el que los jugadores deben competir manejando una serie de elementos programables,
Más detallesSensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.
Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesLABORATORIO DE RC PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE
UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC PRÁCTICA 1: IMPLEMENTACIÓN DE UN CLIENTE Y SERVIDOR DE ECO UDP PRÁCTICA 2: IMPLEMENTACIÓN DE UN CLIENTE
Más detallesProgramación Orientada a Objetos en JAVA
Programación Orientada a Objetos en JAVA Jorge Pérez Introducción a la Computación Jorge Pérez Programación Orientada a Objetos en JAVA 1 / 36 Orientación a Objetos OO es un paradigma de modelación y programación
Más detallesProyecto de ISIII. Pruebas Extra. Pruebas de Caja Blanca
Proyecto de ISIII. Pruebas Extra Pruebas de Caja Blanca InfoMedia 27 de mayo de 2009 Índice Historial... 3 División del método en nodos... 4 Diagrama de Flujo de Control del método... 6 Diseño y realización
Más detallesPara leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.
CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA
Más detallesSistemas Operativos. Curso 2016 Procesos
Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor
Más detallesCurso 0 de Informática
Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,
Más detallesObjetivo de aprendizaje del tema
Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar
Más detallesINSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++
5.- Herencia Múltiple. Un hecho natural es que una persona tenga más de un pariente mayor, esta situación también se puede dar en la herencia de clases, naturalmente este tipo de herencia involucra un
Más detallesZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...
CONTENIDO ZCARTAS: Iniciación a la suma y resta de números enteros... 4 Introducción... 4 Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... 4 Contenidos trabajados... 4 Instrucciones de Scratch...
Más detallesCliente/Servidor en Java
Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno
Más detallesUnidad II: Administración de Procesos y del procesador
Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros
Más detallesProgramación Orientada a Objetos en C#.NET CAPÍTULO 8 E V E N T O S. Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.
CAPÍTULO 8 E V E N T O S 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Quéesunevento? Paraquésirve? Qué temas se deben dominar para implementar aplicaciones con eventos? Qué se requiere
Más detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detallesPrimer Parcial Febrero 24 de 2007
1 de 6 Primer Parcial Febrero 24 de 2007 Algoritmos y Lenguajes I Reglas del juego: Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni
Más detallesPráctica sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
Más detallesTutorial básico del entorno de desarrollo Eclipse.
Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesdit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.
Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.
Más detallesISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA
ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario
Más detallesALMACEN 1. En el ejemplo se muestra al proveedor 1, que realiza la fase 40. Automáticamente se creó el almacén P1.
ALMACEN 1 En DaVinciTEXTIL, le permite controlar las existencias o stock tanto de artículos acabados como de los materiales. En este manual se detallan las nociones básicas que debe aprender, posteriormente
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de iteración PRÁCTICA NÚM. [ 6 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detallesEjercicios de evaluación de fundamentos de programación en Java
Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4
Más detallesSintaxis y Convenciones de Java. M. en C. Erika Vilches
Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando
Más detallesIntroducción Descripción del servicio
507953 1 Contenido Contenido Cambios Introducción Descripción del servicio Introducción Arquitectura Paso a paso Capa de negocio Adapter Interface Service Proxy Fichero de propiedades Despliegue del servicio
Más detallesTema 3. Test Driven Development
Tema 3. Test Driven Development Ejercicios Resueltos Ejercicio 01. Desarrolle mediante TDD una implementación del algoritmo de la Criba de Eratóstenes para calcular la lista de los números primos desde
Más detallesExamen de Redes - ETSIA 9 de septiembre - Primer Parcial
Apellidos, Nombre: Grupo: Examen de Redes - ETSIA 9 de septiembre - Primer Parcial AUTORIZO a los profesores de la asignatura Redes de 2º curso de la ETSIA a publicar las calificaciones de los exámenes
Más detallesJava y JVM: programación concurrente
Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad
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 detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y
Más detalles