Revisión del Concepto de Hilo (Thread) API Java parathreads: Marco General. Clase Thread: API Básica. TEMA 3: Creación y Control De Threads en Java

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Revisión del Concepto de Hilo (Thread) API Java parathreads: Marco General. Clase Thread: API Básica. TEMA 3: Creación y Control De Threads en Java"

Transcripción

1 TEMA : Creación y Control De Threads en Java CONTENIDO Revisión del Concepto de Hilo Técnicas de Creación de Hilos Ciclo de Vida. Control de Hilos Prioridades Hilos y Sistemas Operativos BIBLIOGRAFÍA RECOMENDADA: [Eck0] Eckel, B. Thinking in Java. Prentice Hall. 00 [Göe06] Göetz et al. Java Concurrency in Practice, 006 [Oaks0] Oaks & Wong. Java Threads. O`Reilly, Revisión del Concepto de Hilo (Thread) Dentro de un proceso, el control suele seguir un hilo de ejecución, que comienza con main, continúa con el resto de las instrucciones, y termina con el proceso. Java soporta varios hilos de ejecución y por tanto, los programas de Java pueden crear dentro de sí mismos varias secuencias de ejecución concurrentes. A diferencia de los procesos concurrentes, que son independientes, los hilos de un mismo proceso comparten el espacio de direcciones virtuales, y los recursos del s.o. Por tanto, cada hilo tiene acceso a los datos y procedimientos del proceso, pero poseen su propio contador de programa y pila de llamadas a procedimientos. Los problemas que aparecen con una concurrencia multihilo son los habituales: exclusión mutua y sincronización, y con menor importancia, esquema de prioridades e interbloqueos. Se pueden tener hilos de dos formas: herencia de la clase Thread o implementación de la interfaz Runnable. Thread extends Clase Extendida Razones para Usar Hilos API Java parathreads: Marco General Estamos en programación concurrente y toca usar hilos Se optimiza el uso de la CPU Se modelan mejor determinados problemas o no El problema no admite otra solución razonable, por ejemplo programar un servidor decente diseñar un GUI interactivo Thread Thread() Thread(Runnable target) void run() void start() MiThread void run() extends parámetro RunnableObject void run()//imp. Runnable void run() subclase implementación implements Clase Thread: API Básica public class Thread extends Object implements Runnable public Thread(); public Thread(String name); public Thread(Runnable target); public Thread(Runnable target, String name); public Thread(Runnable target, String name, long stacksize); ; public void start(); public void join() 5 Concurrencia con Hilos por Herencia de la clase Thread class Ejemplo_Hilos1 extends Thread public Ejemplo_Hilos1 (int Tope) //constructor T = Tope; public void run () //sobreescritura del metodo run for (int i = 1; i <= T; i++) System.out.println (i); //aquí comportamiento del //hilo deseado private int T ; 6 1

2 Secuencia Temporal de Co-rutina con Hilos class Prueba_Hilo1 //Hace uso de la clase anterior public static void main (String [] args) throws InterruptedException Ejemplo_Hilos1 Hilo1 = new Ejemplo_Hilos1 (5); Ejemplo_Hilos1 Hilo = new Ejemplo_Hilos1 (15); Hilo1.start (); //Ahora se lanzan ambos hilos Hilo.start (); //con apertura de co-rutina Hilo1.join (); Hilo.join (); // y cierre de co-rutina System.out.println ("Hilos terminados"); E J E C U C I Ó N Programa principal Hilo 1 Hilo Condición de Espera (join) Tiempo 7 8 EJERCICIOS Revisitando incconcurrente.java Dado el código anterior, incremente el número de hilos y el número de vueltas que cada hilo da. Recompile y ejecute. Observa entrelazado en la salida? Continúe aumentando el número de hilos (por ejemplo definiendo un array de hilos) Dónde está el límite práctico al número de hilos (% uso de CPU próximo al 100%)? Escriba un hola mundo concurrente. Descárguelo (Tema 1) Array de Threads Dato común: n Variables static permiten compartir memoria entre threads Secciones críticas Condición de Concurso Resultados no consistentes Modelo de Memoria de Java 9 10 public class Hola_Adios extends Thread public Hola_Adios (String Palabra) Cadena = Palabra; EJERCICIOS private void otrometodo() System.out.println ( otro metodo ); public void run () for (;;) System.out.println (Cadena); this.otrometodo(); // run puede invocar otros metodos de la clase Integer p = new Integer(); //o crear los objetos que necesita Escriba un hilo que muestre pares o impares, según se indique en el constructor, un número dado de veces, que también se indicará en el constructor. Llame a la clase ParImpar.java Escriba ahora un código que hago uso de la clase anterior. Llámelo Usa_ParImpar.java Observe el entrelazado. Aloje una variable compartida en una clase llamada Critica.java. Provea métodos para incrementar la variable y para mostrar su contenido. Habría condiciones de concurso? Escriba ahora hilos que utilicen un objeto común de esa clase. Láncelos en un código aparte. Observa algo raro? Aunque no lo observe Qué puede ocurrir potencialmente? Realmente hacía falta la clase Critica.java? public static void main (String [] args) new Hola_Adios ("Hola").start (); new Hola_Adios ("Hola").start (); new Hola_Adios ("Hola").start (); new Hola_Adios ("Adios").start (); private String Cadena; 11 1

3 Concurrencia con Hilos por Implementación de la Interfaz Runnable public interface Runnable ; Es una interface de java.lang Cualquier clase X que la implemente expresa ejecución concurrente Objetos de la clase X son parámetros del constructor de Thread public class X implements Runnable //codigo concurrente Código concurrente en ejecución A = new X() H = new Thread(A) H.start() Objeto clase X contiene código concurrente H A A 1 1 Concurrencia con Hilos por Implementación de la Interfaz Runnable public class UsoRunnable implements Runnable private String Cadena; public UsoRunnable(String Palabra) Cadena=Palabra; for(;;) System.out.println(Cadena); UsoRunnable Hilo1 = new UsoRunnable("Hola"); UsoRunnable Hilo = new UsoRunnable("Adios"); new Thread(Hilo1).start(); new Thread(Hilo).start(); 15 /*Otra forma de crear hilos concurrentes dandoles nombre *@author Antonio J. Tomeu */ public class UsoRunnable implements Runnable private int Iter; public UsoRunnable(int Dato) Iter = Dato; for(int i=1;i<=iter;i++) System.out.println("Trabajando"); throws InterruptedException Runnable HiloA = new UsoRunnable(100); Runnable HiloB = new UsoRunnable(00); Runnable HiloC = new UsoRunnable(100); 16 //version del constructor Thread crea hilo con un nombre Thread A = new Thread(HiloA, "Mi Hilo"); Thread B = new Thread(HiloB, "Tu Hilo"); //sin nombre Thread C = new Thread(HiloC); A.start(); B.start(); A.join(); B.join(); C.join(); //metodo getname() de objetos de la clase Thread devuelve el nombre //del hilo System.out.println(A.getName()); System.out.println(B.getName()); //no tenia nombre, pero se le dio uno en tiempo de ejecucion. System.out.println(C.getName()); mparativa de Métodos de Multithreading Inconveniente de heredar de Thread: No permite heredar de otras clases. Alternativa de creación de hilos: Implementación de la interfaz Runnable Sobreescribir siempre el método run Los objetos que implementan Runnable deben ser lanzados explícitamente Se hace creando un objeto Thread cuyo parámetro es un objeto Runnable Luego se llama al método start del objeto Thread creado Técnica recomendada: implementar la interfaz 17 18

4 EJERCICIOS Otras técnicas de creación de Threads Escriba ahora código de hilo que implemente la interfaz Runnable. Déle al hilo acceso compartido a una variable común. Llámelo hilorunn.java Escriba un programa que haga uso de los hilos anteriores. Llámelo usahilrunn.java. Verifique la sobreescritura. Escriba código de hilo para el lanzamiento de una co-rutina. Cada hilo deberá desplegar su nombre. Desarrolle una versión con cada herramienta de creación de hilos. Llámelas Co_rutina_T.java y Co_rutina_I.java Inspeccione el API de la clase Thread. En C/C++, el API de pthread.h incluye herramientas de sincronización mediante mutex. Puede decirse lo mismo de la clase Thread en java? Finalmente, desarrolle una versión en java del algoritmo de Lamport para dos procesos utilizando hilos heredados de Thread. Pool de Threads Permiten reutilizar hilos Deben ajustarse (tuning) según aplicación Análisis en Tema Objetos Thread: Ciclo de Vida Hilo Inexistente CLASEThread: API DE CONTROL Un hilo t1 puede se controlado por otro hilo t0 (normalmente el hilo padre) a través de los siguientes métodos de la clase Thread. new Thread(), new Thread(Runnable t) destroy()//derogado Hilo nuevo start() Método t1.checkaccess() t1.start () t1.stop () Lanza el hilo t1 Comportamiento Determina si t0 tiene permiso para controlar a t1. Mata al hilo t1. DEROGADO wait(), join() Ejecutable destroy()-fin_ejecución //derogado t1.isalive() t1.suspend () t1.resume () Comprueba si el hilo t1 está vivo. Envía a t1 de listo/en ejecución a bloqueado. Hace que t1 vaya de bloqueado a listo. DEROGADO notify(), notifyall() t1.interrupt () Envía una señal a t1. Bloqueado destroy()//derogado Muerto recolección de basura t1.sleep(int t) t1.yield() t1.join () t1.destroy () Suspende a t1 durante t milisegundos. Pasa a t1 de en ejecución a listo. Suspende a t0 y espera a que termine t1. Mata a t1. DEROGADO Hilo Inexistente 1 CONTROL DE Threads: Ejemplo con Métodos Derogados import java.io.*; Import java.util.*; public class Control extends Thread //No declara constructor explicito. Usa el disponible por defecto for(;;) System.out.println("Trabajando"); throws IOException int c; //usando el constructor implicito Control Hilo = new Control(); Hilo.start(); for(int i=1; i<=100; i++) //entrelazado de instrucciones System.out.println("Hola soy el padre"); Hilo.suspend(); //USO DE METODO DEROGADO, HILO PADRE SUSPENDE A HIJO. System.out.println("Hijo suspendido"); //Ahora reactivamos al hijo, que pasa a listo. System.out.println("Pulsa 1 para despertar al hijo"); do c=system.in.read(); while(c!= -1); Hilo.resume(); //USO DE METODO DEROGADO, PASA A LISTO A HIJO //un poquito de interfoliacion otra vez. for(int i=1; i<=100; i++) System.out.println("Hola soy el padre"); Hilo.stop(); //USO DE METODO DEROGADO, PADRE PARA AL HIJO

5 CONTROL DE Threads: Ejemplo de Replanificación Voluntaria (sleep) import java.io.*; public class AutoControl extends Thread private int Vueltas; public AutoControl(int Dato) Vueltas=Dato; //el uso de sleep exige capturar la posible excepcion. try for(int i=1; i<=vueltas; i++) System.out.println(i); if(i==5)//los hilos se suspenden en la iteracion 5 System.out.println("Suspension durante dos segundos"); int timeout = 1000; sleep(timeout); System.out.println("Continuando"); //if //for catch (InterruptedException e) return; 5 new AutoControl(50).start(); new AutoControl(150).start(); 6 CONTROL DE Threads: Ejemplo de Cesión de Prioridad Voluntaria (yield) public class replaniyield extends Thread private boolean hy;//indicara si el hilo cede prioridad o no private int v; public replaniyield(boolean haceryield, int vueltas) hy = haceryield; v = vueltas; for(int i=0; i<v; i++) if(i==0&&hy==true)this.yield();//indica cesion de prioridad else System.out.println("Hilo "+this.getname()+" en iteracion "+i); replaniyield h0 = new replaniyield(false, 50); replaniyield h1 = new replaniyield(false, 50); replaniyield h = new replaniyield(true, 50); //cedera prioridad y h0.setname("1-noyield"); //sera o no considerarda h1.setname("-noyield"); h.setname("-siyield"); h0.start(); h1.start(); h.start(); 7 CONTROL DE PRIORIDAD Prioridad hilo hijo igual a la de hilo padre La prioridad tiene sentido exclusivamente en el ámbito de la JVM aunque se mapea a los hilos de sistema (OJO: EL MAPPING NO ES RIGUROSO=>INVERSIONES DE PRIORIDAD) Clase Thread:esquema de diez niveles de prioridad Ver la prioridad de un hilo: public int getpriority() Alterar la prioridad de un hilo: public void setpriority(int p) (1<=p<=10) 8 CLASE Thread: API DE CONTROL DE PRIORIDAD PLANIFICACIÓN BASADA EN PRIORIDADES package java.lang; public class Thread implements Runnable public final static int Thread.MIN_PRIORITY; public final static int Thread.NORM_PRIORITY; public final static int Thread.MAX_PRIORITY; public void setpriority(int prioridad); public int getpriority(): Valor prioridad en JVM indica al planificador del S.O qué hilos van primero pero no es un contrato absoluto entre ambos ya que depende: de la implementación de la JVM del S.O. subyacente del mapping prioridad jvm-prioridad s.o

6 public class Prioridades extends Thread private long dato; private static int prio = ; //atributo de clase comun a instancias public Prioridades (long n)dato=n; private long fac(long n) if (n == 0) return 0; else if (n == 1) return 1; else return(fac(n-1)*n); //this.setpriority(prio++); //ejecutar con y sin el ajuste de prioridad System.out.println("El factorial de "+dato+" es "+fac(dato)); new Prioridades(10).start(); //orden lanzamiento no es igual al orden new Prioridades(0).start(); //de ejecución pero new Prioridades(0).start(); // ajustando las prioridades? new Prioridades(0).start(); new Prioridades(50).start(); new Prioridades(60).start(); 1 import java.util.*; import java.text.*; public class Trabajo implements Runnable long n; String id; private long fib(long n) if (n == 0) return 0L; if (n == 1) return 1L; return fib(n - 1) + fib(n - ); public Trabajo(long n, String id) this.n = n; this.id = id; Date d = new Date(); DateFormat df = new SimpleDateFormat("HH:mm:ss:SSS"); long starttime = System.currentTimeMillis(); d.settime(starttime); System.out.println("Iniciando trabajo " + id + " a las " + df.format(d)); fib(n); long endtime = System.currentTimeMillis(); d.settime(endtime); System.out.println("Acabando trabajo " + id + " a las " + df.format(d) + " tras " + (endtime - starttime) + " milliseconds"); public class ThreadTest public class ThreadTestNuevaPrioridad int nhilos = Integer.parseInt(args[0]); long n = Long.parseLong(args[1]); int nhilos = Integer.parseInt(args[0]); long n = Long.parseLong(args[1]); Thread t[] = new Thread[nHilos]; Thread t[] = new Thread[nHilos]; for (int i = 0; i < t.length; i++) t[i] = new Thread(new Trabajo(n, "Trabajo " + i)); t[i].start(); for (int i = 0; i < t.length; i++) try t[i].join(); catch (InterruptedException ie) for (int i = 0; i < t.length; i++) t[i] = new Thread(new Trabajo(n, "Trabajo " + i)); t[i].setpriority((i % 10)+1); t[i].start(); for (int i = 0; i < t.length; i++) try t[i].join(); catch (InterruptedException ie) EJERCICIOS Compile y ejecute los códigos anteriores Observa inversiones de prioridad? A qué cree que se deben? Desarrolle ahora código de hilo sincronizado basado en prioridades (p.e. un hilo incrementa un dato y otro lo muestra, en ese orden) Es una estrategia válida de sincronización? Y con una co-rutina? MAPPING HILOS JVM-HILOS NATIVOS DE WIN El s.o. conoce el número de hilos que usa la JVM Se aplican uno-a-uno. (JVM a Win) El secuenciamiento de hilos java está sujeto al del s.o. Se aplican 10 prioridades en la JVM sobre 7 en el s.o.+5 prioridades de secuenciamiento 5 6 6

7 MAPPING PRIORIDADES JVM A WIN MAPPING HILOS JVM-HILOS NATIVOS DE WIN Prioridad Java 0 1 (Thread.MIN_PRIORITY) 5 (Thread.NORM_PRIORITY) (Thread.MAX_PRIORITY) Prioridad Win THREAD.PRIORITY_IDLE THREAD.PRIORITY_LOWEST THREAD.PRIORITY_LOWEST THREAD.PRIORITY_BELOW_NORMAL THREAD.PRIORITY_BELOW_NORMAL THREAD.PRIORITY_NORMAL THREAD.PRIORITY_ABOVE_NORMAL THREAD.PRIORITY_ABOVE_NORMAL THREAD.PRIORITY_HIGHEST THREAD.PRIORITY_HIGHEST THREAD.PRIORITY_TIME_CRITICAL Pero recuerde En general, hilos de baja prioridad obtendrán acceso al procesador cuando los de alta prioridad estén en espera. La prioridad es poco significativa cuando todos los hilos compiten por el procesador. 7 8 MAPPING HILOS JVM-HILOS NATIVOS DE LINUX MAPPING PRIORIDADES JVM A PRIORIDADES DE HILOS LINUX Núcleos recientes implementan Native Posix Thread Library Aplican hilos JVM a hilos del núcleo uno-a-uno bajo el modelo de Solaris La prioridad java es un factor muy pequeño en el cálculo global del secuenciamiento Prioridad Java 0 1 (Thread.MIN_PRIORITY) 5 (Thread.NORM_PRIORITY) (Thread.MAX_PRIORITY) Prioridad Linux (nice value) no contemplado RESTRICCIONES DEL MAPPING PRIORIDADES JVM A LINUX Solo como root (o con privilegios equivalentes, setuid) Parametrizar a la JVM indicando que tenga en cuenta las prioridades. CONTROL DE PRIORIDAD: CONCLUSIONES La actual especificación de la JVM no establece un modelo de planificación por prioridades El comportamiento puede y debe variar en diferentes máquinas En secuencias de tareas estrictas, no es posible planificar con prioridades Aunque sí con co-rutinas, a nivel básico 1 7

8 En el Próximo Tema Modelos Teóricos de Control de la Concurrencia Variables Comunes Semáforos Regiones Críticas Monitores 8

Arquitecturas cliente/servidor

Arquitecturas 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 detalles

Normalmente, los programas son ejecutados de forma secuencial. Único flujo de control

Normalmente, 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 detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 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 detalles

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Unidad 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 detalles

1 HILOS (THREADS) EN JAVA

1 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 detalles

Programació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 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 detalles

Programación Concurrente en Java

Programació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 detalles

Programación Orientada a Eventos

Programació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 detalles

Federico Peinado www.federicopeinado.es

Federico 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 detalles

CAPÍTULO III: Programación Concurrente en JAVA I: Programación con hilos

CAPÍTULO III: Programación Concurrente en JAVA I: Programación con hilos CAPÍTULO III: Programación Concurrente en JAVA I: Programación con hilos III. PROGRAMACION CON HILOS (THREADS) EN JAVA Java contiene una serie de clases y construcciones específicas para programar de forma

Más detalles

Java y JVM: programación concurrente

Java 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 detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE Ejemplos III: Sopa de Letras 1 Objetivo Mostrar las diferentes estrategias que puede seguir un gestor que tiene que ejecutar una tarea compleja que puede ser paralelizada en diferentes

Más detalles

Programación concurrente

Programación concurrente Programación concurrente Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Programación concurrente

Más detalles

Java: Programación Multithread

Java: 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 detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES 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 detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. 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 detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class 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 detalles

Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008

Programació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 detalles

CAPÍTULO 2. PROCESOS VS. HILOS

CAPÍTULO 2. PROCESOS VS. HILOS CAPÍTULO 2. PROCESOS VS. HILOS El objetivo de este capítulo es el de discutir con un poco más de profundidad todo lo relacionado con el concepto de proceso que sea relevante para el estudio de la programación

Más detalles

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

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 detalles

Programación concurrente y semáforos en Java

Programación concurrente y semáforos en Java Programación concurrente y semáforos en Java En Java es posible ejecutar tareas en paralelo, utilizando hebras de control (hilos, threads). Este modo de programación permite tener un espacio de memoria,

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

75-62 Técnicas de Programación Concurrente II 2004 java Threads

75-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 detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

TEMA 6: API Java para Concurrencia de Alto Nivel

TEMA 6: API Java para Concurrencia de Alto Nivel TEMA 6: API Java para Concurrencia de Alto Nivel CONTENIDO API Java 5 de Control de la Concurrencia Clases para Gestión de Variables Atómicas Clase java.concurrent.util.concurrent.semaphore Clase java.concurrent.util.concurrent.cyclicbarrier

Más detalles

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

HOJA 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 detalles

Si bien Pascal-FC no trae algunas de las características de Pascal como:

Si bien Pascal-FC no trae algunas de las características de Pascal como: PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica

Más detalles

Concurrencia en Java

Concurrencia 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 detalles

Programación Concurrente en Java: Threads

Programación Concurrente en Java: Threads Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid 7 de mayo de 007 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los

Más detalles

Definición. Mónica E. García García Feb 07

Definición. Mónica E. García García Feb 07 Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere

Más detalles

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases INDICE Prologo XIII 1 Recorrido rápido de java 1.1. Para empezar 1 1.2. Variables 2 1.3. Comentarios en el condigo 1.4. Constantes con nombre 5 1.4.1. Caracteres Unicode 6 1.5. Flujo de control 7 1.6.

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM 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

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar

Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar Introducción El alumno creará cuatro programas en java que manejen control de flujo mediante las sentencias de bucle while y do/while,

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programació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 detalles

Ingeniería del Software Separación entre Presentación y Lógica del Negocio

Ingenierí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 detalles

Hebras y Sincronización en Java

Hebras 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 detalles

(THREADS) Ing. Laura Sandoval Montaño, Ing. Manuel Enrique Castañeda Castañeda PAPIME 104911

(THREADS) Ing. Laura Sandoval Montaño, Ing. Manuel Enrique Castañeda Castañeda PAPIME 104911 (THREADS) HILOS JAVA La Máquina Virtual Java (JVM) es un sistema multihilo. La JVM gestiona todos los detalles, asignación de tiempos de ejecución, prioridades, etc., de forma similar a como gestiona un

Más detalles

Concurrencia en Android LSUB, GYSC, URJC

Concurrencia 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 detalles

Modelo de Objetos Distribuidos

Modelo 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 detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A. SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Tema 4: Control del flujo de ejecución: Excepciones y Threads. Programación Orientada a Objetos. Marcos López Sanz

Tema 4: Control del flujo de ejecución: Excepciones y Threads. Programación Orientada a Objetos. Marcos López Sanz Tema 4: Control del flujo de ejecución: Excepciones y Threads Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual MARCOS LOPEZ SANZ Excepciones Def.:

Más detalles

Monitores Ing. Iván Medrano Valencia

Monitores Ing. Iván Medrano Valencia Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos

Más detalles

Introducción a la Programación Orientada a Objetos

Introducció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 detalles

MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA

MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA Sincronización El problema de la sincronización de hilos tiene lugar cuando varios hilos intentan acceder al mismo recurso o dato. A la

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

18. Interfaces Declaración de una interfaz

18. Interfaces Declaración de una interfaz Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir

Más detalles

CAPÍTULO 3. PROCESOS VS. HILOS

CAPÍTULO 3. PROCESOS VS. HILOS CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí

Más detalles

Sincronización de Threads

Sincronización de Threads Sincronización de Threads Herramientas y Lenguajes de Programación Universidad de La Laguna Programa de Doctorado de Física e Informática Escuela Técnica Superior Superior de Ingeniería Informática Dpto.

Más detalles

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

de Gran Canaria Centro de Tecnología Médica  Programación Concurrente Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programació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 detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemé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 detalles

Programación multihebra

Programación multihebra Programación multihebra by Scheme the API man 2000 (jmrequena@larural.es) Qué es la programación multihebra? Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que

Más detalles

k. Son métodos de la clases y respectivamente, que analiza un para devolver un entero con

k. Son métodos de la clases y respectivamente, que analiza un para devolver un entero con La multiplicación de matrices bidimensionales se puede realizar mediante el uso de hilos. Desde un hilo de ejecución, se pueden crear varios hilos, uno por cada entrada de la matriz resultante. Dos sentencias

Más detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Programació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

Programació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 detalles

Clase 34. Hilos. Qué es un hilo?

Clase 34. Hilos. Qué es un hilo? Clase 34 Hilos Qué es un hilo? Imagine un programa de Java que lee archivos grandes en Internet en distintos servidores. Algunos de ellos estarán sometidos a grandes cargas o tendrán conexiones lentas

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programació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 detalles

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín CONCURRENCIA EN JAVA Diseño de Sistemas Operativos Avanzados 2000/2001 Pedro Pablo Gómez Martín Concurrencia en Java 1 ÍNDICE ÍNDICE... 1 INTRODUCCIÓN... 3 CREAR UNA NUEVA HEBRA... 3 FINALIZACIÓN... 5

Más detalles

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA Primera Sesión 1. Introducción a la programación orientada a objeto 2. Introducción al lenguaje Java 3. Primer programa en Java 4. Primer

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables

Más detalles

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA CONTENIDO: La Plataforma J2SE Elementos Básicos de Programación Nociones de Orientación a Objetos E/S y Manejo Básico de Excepciones Otros Conceptos sobre POO:

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS 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 detalles

Construcciones del Lenguaje Java

Construcciones del Lenguaje Java Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.

Más detalles

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI

PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI PROGRAMACION DISTRIBUIDA MobileTracker: Ejemplo de implementación con RMI Héctor Pérez 2 MobileTracker: Especificación El computador de la torre de control ejecuta el servicio Follower que registra los

Más detalles

Threads. Hilos - Lightweight process - Procesos ligeros

Threads. Hilos - Lightweight process - Procesos ligeros Threads Hilos - Lightweight process - Procesos ligeros 1 Temario Concepto y Beneficios Estructuras de implementación: Servidor- Trabajador, Equipo, Pipeline Reconocimiento: En el espacio del usuario /

Más detalles

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos Hilos Módulo 4 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Hilos Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!

Más detalles

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java

Java RMI Remote Method Invocation. Invocación Remota de Métodos en Java Java RMI Remote Method Invocation Invocación Remota de Métodos en Java Contenido Introducción Implementación Diseño de la interfaz remota. Implementación de la interfaz remota. Obtención de las clases

Más detalles

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este

Más detalles

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Generación de excepciones.

Más detalles

Introducción al lenguaje Java

Introducció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 detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados

Más detalles

IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA

IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA DEPARTAMENTO DE INFORMÁTICA E INGENIERÍA DE SISTEMAS LÍNEA DE INVESTIGACIÓN IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA TRABAJO DE INVESTIGACIÓN Director: José Luís Villarroel Salcedo Doctorando:

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Concurrencia en Java Con un único procesador, solamente puede ejecutarse una instrucción en un instante de tiempo. La frase anterior parece una perogrullada, pero no lo es. Posiblemente

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java 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 detalles

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.

Más detalles

PROGRAMACION DISTRIBUIDA

PROGRAMACION DISTRIBUIDA PROGRAMACION DISTRIBUIDA Distribución basada en el patrón proxy-servant Héctor Pérez 2 Distribución de aplicaciones basadas en objetos Objetivo: rediseño de una aplicación orientada a objetos para ser

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Prá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 detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Concurso: Cuánto sabes de JAVA?

Concurso: Cuánto sabes de JAVA? Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos

Más detalles

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

1. Cuántas sentencias hay en la secuencia principal del siguiente programa? 1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) APRENDERAPROGRAMAR.COM INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

2. Estructura de un programa en Java

2. 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 detalles

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

Más detalles

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Ejercicio 1 (2 puntos) SOLUCIONES class TarjetaDeCredito

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

Más detalles

Introduciendo datos desde el

Introduciendo datos desde el Introduciendo datos desde el teclado Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Crear programas interactivos que lean datos

Más detalles

DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS

DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS UNIDAD IZTAPALAPA DIVISIÓN DE CIENCIAS BÁSICAS E INGENIERIA DESARROLLO DE APLICACIONES PARA CONTROL Y MONITOREO DE DISPOSITIVOS REMOTOS PARA OBTENER EL TITULO DE LICENCIADO EN COMPUTACION PRESENTAN: CRISÓSTOMO

Más detalles