Sincronización de Threads

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

Download "Sincronización de Threads"

Transcripción

1 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. Sistemas Informáticos y Computación Resumen El objetivo de esta sesión es mostrar el modo de funcionamiento de los distintos tipos de programas Java. Además se introducen los threads (hilos) y trabaja con los principios básicos de los mismos: su sincronización y secuencialización. 1. Ejemplo de aplicación La programación se vuelve un poco más compleja cuando se tiene un programa con threads. Considérese la siguiente descripción aparentemente sencilla: Los threads A y B comparten un dato, contador. El thread A efectúa repetidamente algunos cálculos que producen un entero y lo coloca en el contador. El thread B obtiene repetidamente el texto del contador y lo utiliza para sus propios cálculos. Cuando el programa esté en ejecución, el sistema alterna la ejecución de A y B. La forma en que ocurre esto varía de un Sistema Operativo a otro y está completamente fuera del control del programador. Es posible que el sistema ejecute un thread hasta terminarlo, antes de iniciar el otro; que ejecute tres instrucciones de un thread antes de hacer lo mismo con una del otro, e incluso que deje un thread en medio de una instrucción, lo suspenda y empiece con el otro. Una vez adevertido que es imposible suponer nada acerca del orden de ejecución de dos o más threads, aparecen los siguientes escenarios: 1. El thread A se ejecuta parcialmente en la actualización del contador y luego la ejecución cambia a B. El resultado de B puede recibir basura cuando trata de inspeccionar el contador. 2. El thread A escribe nueva información en el contador antes de que B inspeccione el valor antiguo. Este último se pierde. 1

2 Herramientas y Lenguajes de Programación El thread B recibe un valor y luego accede a contador de nuevo antes de que A haya generado un nuevo valor. Se utiliza dos veces el valor antiguo. El escenario 1 requiere exclusión mutua, en que no permite que dos threads tengan acceso simultáneo al recurso compartido contador. Los escenarios 2 y 3 requieren secuencialización, en que cada thread debe esperar a que el otro termine de usar el recurso compartido. Es importante señalar que estos escenarios son problemáticos sólo porque los threads A y B tienen acceso al objeto contador. Si el código que ejecutan A y B no hiciera referencia a un objeto compartido, estos subprocesos podrían ejecutarse en el orden que decida el Sistema Operativo y dicho orden no tendría efecto en el resultado del programa. Figura 1: Ejemplo del Productor/Consumidor La aplicación PCTest.java contiene la definición de una aplicación Productor/Consumidor en la que se instancian dos objetos: uno de tipo Productor y otro de tipo Consumidor. Estos objetos son threads que se encargan uno de poner un valor y el otro de recogerlo de un objeto de tipo Mostrador. El Productor genera un entero entre 0 y 9, lo almacena en el mostrador y lo imprime. El Consumidor al contrario, consume todos los enteros del mostrador (que es exactamente el mismo objeto en el que el productor coloca los enteros) tan pronto como están disponibles. Así pues, el productor y el consumidor de este ejemplo comparten los datos a través del objeto de tipo Mostrador (figura 1). El primer paso para manipular una aplicación Java es compilarla ejecutando en la línea de comandos la instrucción >javac PCTest.java Es importante que el nombre del fichero que contiene el código coincida exactamente con el nombre de la clase que se declara como pública. Al realizar este paso se obtiene el siguiente conjunto de ficheros Mostrador.class, Productor.class, Consumidor.class, PCTest.class. Para ejecutar la aplicación se escribe en la línea de comandos >java PCTest

3 Herramientas y Lenguajes de Programación Ejemplo de applet El código que aparece a continuación muestra la implementación en Java del programa que muestra en la ventana principal del navegador la frase Hola Mundo en Java : /** * Applet Hello World */ import java.applet.applet; import java.awt.graphics; public class AppletSimple extends Applet{ public void paint(graphics g){ g.drawstring("hola Mundo en Java", 50, 25); El primer paso para manipular un applet Java es compilarlo ejecutando en la línea de comandos la instrucción >javac AppletSimple.java Al realizar este paso se obtiene una fichero AppletSimple.class. El fichero.class resultante de la compilación, se ha de incrustar en un fichero para ser ejecutado por un navegador. En este caso las etiquetas a utilizar son <APPLET> y </APPLET>. El siguiente código HTML contine la estructura de la etiqueta para el ejemplo que nos ocupa (está almacenado en un fichero con nombre html.html). <html> <head> <title> Un applet simple </title> </head> <body> <p> A continuación está la salida del programa </p> <applet code="appletsimple.class" width="300" height="100"> No hay disponible un intérprete de Java </applet> </body> </html> Nótese que en el atributo asociado code de la etiqueta <APPLET> se ha especificado AppletSimple.class y no AppletSimple.java. Finalmente, cuando se abre con un navegador el fichero html.html se obtiene el resultado que se muestra en la figura 2.

4 Herramientas y Lenguajes de Programación Figura 2: Ejecución del applet en un navegador El paquete de desarrollo que proporciona SUN también ofrece una herramienta de visualización. Para usarla se ha de ejecutar: >appletviewer html.html Figura 3: Ejecución del applet con appletviewer La herramienta appletviewer sólo muestra el applet. Ignora el código HTML en el que está incrustado (véase la figura 3). 3. Ejercicios 1. Compile y ejecute la aplicación Productor/Consumidor descrita en la primera sección. 2. Añada al código de la aplicación Productor/Consumidor las sentencias necesarias para que los dos threads que se ejecutan pasen al estado de dormido durante un intervalo aleatorio de tiempo.

5 Herramientas y Lenguajes de Programación Implemente los cambios necesarios para que el programa admita la creación de más de un thread productor y más de un thread consumidor. Ejecute el nuevo programa lanzando varios productores y varios consumidores. 4. Implemente los cambios necesarios para que el programa se pueda ejecutar como un applet. Para ello: extienda la clase TextField del paquete java.awt de manera que proporcione los métodos sincronizados setint() y getint() que permitan poner y recoger un entero en el campo de texto. El Consumidor ha de recoger los valores del campo de texto y sumarlos. El Productor generará los enteros impares sucesivos y los coloca en el campo de texto compartido. El Productor indica el final de su tarea colocando el valor -1 en el campo de texto, mientras que el Consumidor utiliza el -1 como señal para informar de la suma. Finalmente se utilizan las tres clases anteriores para crear el applet que contiene un campo de texto extendido y un botón que al hacer click en él lanza los threads. public class Test extends Applet implements ActionListener { private IntField display; private Button startbutton; private Productor p; private Consumidor c; public void init() { display = new IntField(); startbutton = new Button ("Start"); p = new Productor (display); c = new Consumidor (display); add (display); add (startbutton); startbutton.addactionlistener(this); public void actionperformed(actionevent e) { p.start(); c.start();

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

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro Lectura de Datos Dentro de un applet es sencillo tomar algún dato del usuario para realizar

Más detalles

Applets. Un applet es: desde el punto de vista de código Java, un programa diseñado para ser ejecutado en el contexto de una página web.

Applets. Un applet es: desde el punto de vista de código Java, un programa diseñado para ser ejecutado en el contexto de una página web. Applets Un applet es: desde el punto de vista de código Java, un programa diseñado para ser ejecutado en el contexto de una página web. desde el punto de vista de una página html, una pequeña ventana gráfica

Más detalles

Applets. Programación de Applets. Cómo hacer un applet Java. Cómo se ejecuta un applet Java. Programación Orientada a Objetos Facultad de Informática

Applets. Programación de Applets. Cómo hacer un applet Java. Cómo se ejecuta un applet Java. Programación Orientada a Objetos Facultad de Informática Applets Programación de Applets Programación Orientada a Objetos Facultad de Informática! Un applet es:! una pequeña aplicación! accesible en un servidor Internet! que se transporta por la red! se instala

Más detalles

1. Cómo hacer un applet? Implementación de un Applet (awt) Ejecución de los Applets Hacer el archivo HTML con los siguientes

1. Cómo hacer un applet? Implementación de un Applet (awt) Ejecución de los Applets Hacer el archivo HTML con los siguientes 1. Cómo hacer un applet?...2 2. Implementación de un Applet (awt)...3 3. Ejecución de los Applets...5 3.1 Hacer el archivo HTML con los siguientes datos...5 3.2 Ejecución Desde línea de comandos (DOS)...5.1

Más detalles

Guillermo Román Díez

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

Introducción al lenguaje JAVA

Introducción al lenguaje JAVA Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora 1. Applets en Java Estructura de un applet 2. Gráficos en Java El paquete awt Líneas Rectángulos Óvalos

Más detalles

JAVA: Applets. Diseño de aplicaciones web. mperez@fi.upm.es

JAVA: Applets. Diseño de aplicaciones web. mperez@fi.upm.es JAVA: Applets Diseño de aplicaciones web mperez@fi.upm.es Características de Java (I) Simple El programador no tiene que gestionar la memoria! Orientado a Objetos Encapsulación de datos y reutilización.

Más detalles

3URJUDPDFLyQ-DYD. 3UiFWLFD. -DYLHU*DUFtDGH-DOyQÂ -RVp,JQDFLR5RGUtJXH] $OIRQVR%UD]iOH]Â $OEHUWR/DU]DEDOÂ -HV~V&DOOHMDÂ -RQ*DUFtD

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

Segundo Certamen Tiempo: 100 minutos

Segundo Certamen Tiempo: 100 minutos Segundo Certamen Tiempo: 100 minutos 1. Se tiene la siguiente aplicación Java. 30 a) Genere la versión Applet equivalente. b) Muestre un archivo html que incluya esta Applet. c) Con qué comando usted prueba

Más detalles

Guía práctica de estudio 12: Hilos

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

Universidad de Sevilla. Área de Ingeniería Telemática. Área de Ingeniería Telemática. Universidad de Sevilla. Fundamentos de Telemática

Universidad de Sevilla. Área de Ingeniería Telemática. Área de Ingeniería Telemática. Universidad de Sevilla. Fundamentos de Telemática 1 Arquitectura. Estructura de una applet. Métodos gráficos simples. La ventana de estado. Gestión de eventos. Etiqueta APPLET de HTML. Paso de parámetros a las applets. Salida por consola. 2 1 Las applets

Más detalles

Applets y Aplicaciones

Applets y Aplicaciones Applets y Aplicaciones En JAVA es posible crear dos tipos de programas: Applets Son pequeños programas que requieren de un browser W 3 JAVA-compatibe para ejecutarse (actualmente, Netscape, Microsoft Explorer,

Más detalles

Desarrollo de aplicaciones gráficas

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

UPM Concurrencia en Java

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

Programación concurrente en Java

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

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro Utilizando Clases Definidas en Java La manera de utilizar una clase previamente definida

Más detalles

Estructuras de control selectivas

Estructuras de control selectivas Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos

Más detalles

2. Indica cuál de las siguientes afirmaciones es cierta:

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

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:

Más detalles

Java es un lenguaje desarrollado por la compañía informática Sun Microsystems, una de las mayores del sector.

Java es un lenguaje desarrollado por la compañía informática Sun Microsystems, una de las mayores del sector. Java es un lenguaje de Programación Orientado a Objetos que ha tenido gran auge debido, principalmente, a su estrecha relación con internet pues está especialmente adaptado para facilitar la realización

Más detalles

Problema 1 (2 puntos)

Problema 1 (2 puntos) Programación de Sistemas Grado en Ingeniería de Sistemas de Comunicaciones y Grado en Ingeniería Telemática Leganés, 21 de marzo de 2014 Duración de la prueba: 75 min Problema 1 (2 puntos) Examen parcial

Más detalles

Ejercicios de Hilos. Índice

Ejercicios de Hilos. Índice Índice 1 Creación de hilos (0.5 puntos)...2 2 Prioridades (0.5 puntos)... 2 3 Productor/Consumidor (1 punto)...2 4 Pool de hilos (1 punto)... 3 1. Creación de hilos (0.5 puntos) En la clase Ej1 se crean

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

Concurrencia Monitores. Guillermo Román Díez

Concurrencia Monitores. Guillermo Román Díez Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de

Más detalles

Universidad Autónoma de Baja California Facultad de Ingeniería Apuntes de Programación Orientada a Objetos I

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

Técnicas de desarrollo

Técnicas de desarrollo Técnicas de desarrollo 4.1.1. Orientados Procedimientos: Con la programación procedimental realizamos tareas lógicas en un mismo proceso, archivo o ambiente lógico, la invocación de un procedimiento se

Más detalles

Creación de Applets Simples

Creación de Applets Simples Seminario Creación de Applets Simples Junio 2004 Michael González: mgh@unican.es GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González Harbour 1 Creación de Applets Simples 1. Introducción 2. Estructura

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC,LSC 2003-1 5033 Programación Orientada a Objetos I PRÁCTICA No. 11 LABORATORIO DE NOMBRE DE LA PRÁCTICA Ingeniero en Computación, Lic.

Más detalles

Tema 6. Threads: programas multitarea

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

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Unidad V. Ya veremos qué poner en algunas_palabras y algo_más, por ahora sigamos un poco más. Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está

Más detalles

III. Desarrollo de aplicaciones con manejo de datos en la memoria Reuven Feuerstein Javier Navarro

III. Desarrollo de aplicaciones con manejo de datos en la memoria Reuven Feuerstein Javier Navarro III. Desarrollo de aplicaciones con manejo de datos en la memoria Reuven Feuerstein Javier Navarro Que es un arreglo? Un arreglo es un tipo de dato estructurado que permite guardar colecciones de elementos

Más detalles

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Java Server Pages (JSP) Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus jaf@it.uc3m.es Java Server Pages (JSP) p. 1 Introducción Un servlet no resulta adecuado para presentación

Más detalles

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Java Server Pages (JSP) Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus jaf@it.uc3m.es Java Server Pages (JSP) p. 1 Introducción Un servlet no resulta adecuado para presentación

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

El entorno de desarrollo eclipse 3.0.1

El entorno de desarrollo eclipse 3.0.1 escuela técnica superior de ingeniería informática El entorno de desarrollo eclipse 3.0.1 Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software de Gestión III Índice Introducción Perspectiva

Más detalles

Universidad de los Andes Ingeniería de Sistemas y Computación

Universidad de los Andes Ingeniería de Sistemas y Computación Universidad de los Andes Ingeniería de Sistemas y Computación ISIS1205 - Algorítmica y Programación por Objetos II 2006-1 Hoja de Trabajo sobre los menus El objetivo de este taller es aprender a utilizar

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

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

Más detalles

Herramientas y Lenguajes de Programación

Herramientas y Lenguajes de Programación Herramientas y Lenguajes de Programación Coromoto León Hernández 1,5 créditos Universidad de La Laguna Programa de Doctorado de Física e Informática Dpto. de Estadística, I.O. y Computación 2005-2006 Resumen

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

Programación de Eventos

Programación de Eventos Programación de Eventos Un evento es un suceso que ocurre dentro del contexto de la ejecución de un programa. Por ejemplo, se presiona un botón, se modifica una caja de texto, se selecciona una opción

Más detalles

Ingeniería del Software de Gestión

Ingeniería del Software de Gestión escuela técnica superior de ingeniería informática El entorno de desarrollo Eclipse Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software de Gestión III Índice Introducción Perspectiva

Más detalles

Programación Java Curso 2006-1 C Draw

Programación Java Curso 2006-1 C Draw Programación Java Curso 2006-1 C Draw FIUBA Introducción: Prof.. María Feldgen Ing. Osvaldo Clúa En Java, para dibujar se usa el contexto gráfico de un componente. Según las plataformas, este contexto

Más detalles

06/06/2017. Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa

06/06/2017. Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa 1 Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa 2 Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de

Más detalles

Laboratorio I Java Threads (Silberschatz Galvin)

Laboratorio 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 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

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa

Más detalles

Conocimientos previos

Conocimientos previos Ficha de Aprendizaje Tema: Lenguajes de programación Logro @ # n 4 Conoce el concepto de lenguaje de programación. Conoce la clasificación de los lenguajes de programación: máquina, alto nivel y bajo nivel.

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño Programación Orientada a Objetos Introducción a Java Angela Carrillo Ramos Java: Lenguaje de Programación Por qué surge un lenguaje? Para adaptarse a los cambios de entorno y usos: Independencia de la

Más detalles

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal Agosto de 2012 PSEINT TUTORIAL Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal Pseint Acerca de Pseint PSeInt es principalmente un intérprete de pseudocódigo. El proyecto nació como trabajo

Más detalles

Programación interactiva. Oscar Bedoya oscarbed@eisc.univalle.edu.co

Programación interactiva. Oscar Bedoya oscarbed@eisc.univalle.edu.co Programación interactiva Oscar Bedoya oscarbed@eisc.univalle.edu.co El lenguaje de programación Importancia del lenguaje Java Correspondencia directa con el mundo real (compuesto de objetos) Permite implementar

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos

Más detalles

Computación Web (Curso 2013/2014)

Computación Web (Curso 2013/2014) Aplicaciones Web con Servlets y JSP (II) Computación Web (Curso 2013/2014) Jesús Arias Fisteus // jaf@it.uc3m.es Aplicaciones Web con Servlets y JSP (II) p. 1 Java Server Pages (JSP) Aplicaciones Web con

Más detalles

UNIDAD III.- Programación Concurrente

UNIDAD III.- Programación Concurrente UNIDAD III.- Programación Concurrente Sincronización Todo thread tiene una prioridad. Un thread hereda su prioridad, cuyo valor está entre 1 y 10 La prioridad puede modificarse con los métodos: setpriority()

Más detalles

Ejemplo. class SiNoThread extends Thread { private String SiNo; static int Contador = 0; public SiNoThread(String s) { super(); SiNo = s; }

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

Programación conducida por eventos y Applets como ejemplo de Frameworks. Agustín J. González ELO-326. Seminario II 2do. Sem. 2001

Programación conducida por eventos y Applets como ejemplo de Frameworks. Agustín J. González ELO-326. Seminario II 2do. Sem. 2001 Programación conducida por eventos y Applets como ejemplo de Frameworks Agustín J. González ELO-326. Seminario II 2do. Sem. 2001 1 Frameworks Un framework ( marco de trabajo ) es un conjunto de clases

Más detalles

Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro Estatuto if Este estatuto nos sirve para realizar alguna(s) instrucción(es) en vez de otra(s)

Más detalles

Diseño de tipos Igualdad, representación, código, copia y relación de orden

Diseño de tipos Igualdad, representación, código, copia y relación de orden Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones

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

Lenguajes de Script. Qué son los Lenguajes de Script?

Lenguajes de Script. Qué son los Lenguajes de Script? JavaScript (I) 1 Lenguajes de Script Qué son los Lenguajes de Script? Scritps de cliente: son programas que pueden acompañar a un documento HTML o bien ir incrustados en él. Un lenguaje de script es un

Más detalles

Tema 7. Construcción de Applets en Java

Tema 7. Construcción de Applets en Java Programación en Java Tema 7. Construcción de Applets en Java Luis Rodríguez Baena Facultad de Informática Applets Aplicación Java que se ejecuta dentro de un cliente web para ampliar las capacidades de

Más detalles

1

1 Microsoft Visual J++ 6.0 Curso: Microsoft Visual J++ 6.0 Curso de desarrollo de aplicaciones dirigidas a la Web y aplicaciones Windows utilizando el entorno de desarrollo Microsoft Visual J++ 6.0. El curso

Más detalles

Java y JVM: programación concurrente. Adolfo López Díaz

Java y JVM: programación concurrente. Adolfo López Díaz Java y JVM: programación concurrente Adolfo López Díaz JVM Máquina virtual Ambiente de programación virtualizado Permite la ejecución de programas Java ejecutables multiplataforma Programación concurrente

Más detalles

Lenguajes de Programación Curso Práctica 3. Crear y utilizar paquetes. Crear una jerarquía de clases.

Lenguajes de Programación Curso Práctica 3. Crear y utilizar paquetes. Crear una jerarquía de clases. Objetivos Crear y utilizar paquetes. Crear una jerarquía de clases. Índice 1. Paquetes 1 1.1. Nombres de los paquetes................................... 2 1.2. Declaración de un paquete..................................

Más detalles

Apuntes de Java. Tema 9: Applets. Uploaded by Ingteleco

Apuntes de Java. Tema 9: Applets. Uploaded by Ingteleco Apuntes de Java Tema 9: Applets Uploaded by Ingteleco http://ingteleco.webcindario.com ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por email

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓ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 detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia

Más detalles

Programación concurrente

Programación concurrente 23 de Marzo de 2017 Condiciones generales Docente: Hernán Melgrati (hmelgra@...) Horario: Teóricas: Jueves de 14 a 17 Prácticas: Martes de 14 a 17 Evaluaciones: Un parcial (mediados de mayo) Un trabajo

Más detalles

Java Applets como ejemplo de Framework. Agustín J. González ELO-329

Java Applets como ejemplo de Framework. Agustín J. González ELO-329 Java Applets como ejemplo de Framework Agustín J. González ELO-329 Nota sobre futuro de Java Applets With modern browser vendors working to restrict or reduce the support of plugins like Flash, Silverlight

Más detalles

Práctica 2: Eclipse como Entorno Integrado de Desarrollo e Introducción al manejo de excepciones.

Práctica 2: Eclipse como Entorno Integrado de Desarrollo e Introducción al manejo de excepciones. Práctica 2: Eclipse como Entorno Integrado de Desarrollo e Introducción al manejo de excepciones. Software Necesario Eclipse IDE Ejecución de la práctica 1. Descomprima el archivo eclipse-sdk-3.0.1-win32.zip

Más detalles

Java Applets como ejemplo de Frameworks. Agustín J. González ELO-329

Java Applets como ejemplo de Frameworks. Agustín J. González ELO-329 Java Applets como ejemplo de Frameworks Agustín J. González ELO-329 1 Frameworks Un framework ( marco de trabajo ) es un conjunto de clases que implementan todos los servicios comunes de un cierto tipo

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Tema 1: Introducción a los Sistemas Operativos

Tema 1: Introducción a los Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos Yolanda Blanco Fernández yolanda@det.uvigo.es Qué es un Sistema Operativo (SO)? Un programa que actúa como intermediario entre el usuario y el hardware del

Más detalles

Diferentes Perspectivas de un Ordenador

Diferentes Perspectivas de un Ordenador Arquitectura de Ordenadores Programación en ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Diferentes Perspectivas de un Ordenador INT-1

Más detalles

dit Programación concurrente Sincronización condicional UPM

dit Programación concurrente Sincronización condicional UPM 20151028 dit UPM Programación concurrente Sincronización condicional Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons

Más detalles

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

import java.applet.*; import java.awt.*; import java.awt.event.*;

import java.applet.*; import java.awt.*; import java.awt.event.*; /* Conway s Game Of Life (in Spanish) Juego de la Vida v. 0.1 implementacion de Henrik Mitsch (henx@bigfoot.com) probablemente online en http://henx.home.dhs. org/juegodelavida.html */ import java.applet.*;

Más detalles

Sesión 2: Introducción a Java

Sesión 2: Introducción a Java Razonamiento Geométrico Diversiones Sesión 2: Introducción a Java Introducción a Java Copyright 2002-2003 Universidad de Alicante 1 Índice Revisión de Java Qué es Java? Clases y objetos La variable CLASSPATH

Más detalles

Examen de Métodos de Programación Ingeniería Informática Primera Parte

Examen de Métodos de Programación Ingeniería Informática Primera Parte Examen de Métodos de Programación Ingeniería Informática Primera Parte Cuestión 1. (2 puntos) Se pretende guardar y recuperar matrices de números reales de cualquier dimensión en ficheros binarios de tipos

Más detalles

Programación orientada a objetos: Lenguajes, Metodologías y Herramientas

Programación orientada a objetos: Lenguajes, Metodologías y Herramientas Programación orientada a objetos: Lenguajes, Metodologías y Herramientas Master de computación Generación de Código con BOUML Patricia López Computadores y Tiempo Real Santander, 2008 1 Generación de código

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte.

Más detalles

Unidad 3 Sistemas con memoria común

Unidad 3 Sistemas con memoria común Unidad 3 Sistemas con memoria común Definiciones Por concurrencia se entiende la existencia de varias actividades simultáneas o paralelas. La concurrencia de procesos puede verse como la ejecución simultánea

Más detalles

Ejecució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). 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 detalles

Metodología de la Programación

Metodología de la Programación Metodología de la Programación Aplicaciones gráficas F. J. Martín Mateos Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Metodología de la Programación - Tema 7 p. 1/28

Más detalles

Semana 09. Prof. MSc. Luis Diego Sancho Fallas UAM

Semana 09. Prof. MSc. Luis Diego Sancho Fallas UAM Subprogramas Declaraciones de subprogramas Tipos de subprogramas Devolución de valores de un subprograma Llamado a un subprograma Transferencia de parámetros a subprogramas Alcance global Alcance local

Más detalles

DPOO, CPM 1, Curso Última modificación: 9/03/09

DPOO, CPM 1, Curso Última modificación: 9/03/09 Asignatura: DISEÑO Y PROGRAMACION ORIENTADO A AOBJETOS Carrera: Ingeniería Informática Tipo de Curso: CRD Año: 1 er. Semestre: 2 do. TEMA # 1: Conceptos Básicos de la POO CLASE PRACTICA EN MÁQUINA # 1:

Más detalles

Práctica 4 Concurrencia en Java

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

IC Programación Orientada a Objetos I. Programación de Interfaces Gráficas de Usuario (GUI) 2

IC Programación Orientada a Objetos I. Programación de Interfaces Gráficas de Usuario (GUI) 2 IC 2003-1 5033 Programación Orientada a Objetos I 10 Programación de Interfaces Gráficas de Usuario (GUI) 2 1 INTRODUCCIÓN Es difícil pensar en que una aplicación desarrollada actualmente, sea atractiva

Más detalles

Federico Peinado

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

Examen de Programación II (Ingeniería Informática)

Examen de Programación II (Ingeniería Informática) Examen de Programación II (Ingeniería Informática) Septiembre 2010 1) Lenguaje C (2 puntos) Escribir el módulo "elimina_substring" (ficheros elimina_substring.h y elimina_substring.c) que defina una única

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

Capítulo 3. Introducción a la programación. Continuar

Capítulo 3. Introducción a la programación. Continuar Capítulo 3 Introducción a la programación Continuar Introducción Java es un lenguaje que tiene muchas ventajas frente a otros lenguajes de programación: es open source (código abierto), esto permite ver

Más detalles