La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a Programación Concurrente

Presentaciones similares


Presentación del tema: "Introducción a Programación Concurrente"— Transcripción de la presentación:

1 Introducción a Programación Concurrente
Estructuras de Datos

2 Hilos de Ejecución

3 Procesos Ejecución de un programa Características
Estado (valor de los registros) Instrucciones Pila de ejecución Memoria de trabajo (heap)

4 Hilos y Procesos

5 Ventajas de programar con hilos
Simplificación del modelo Manejo de eventos asíncronos Interfaces de usuario más interactivas Uso de varios procesadores

6 Varias pilas de ejecución

7 Iniciar un hilo en Java Thread t = new Thread() ; t. start () ; Este hilo no hace nada. El stack se pierde en el momento en el que se inicia. Hay que darle un trabajo.

8 ¿Cómo iniciar un nuevo hilo de ejecución?
Crear un objeto de tipo Runnable Este es el trabajo que va a realizar el hilo.

9 ¿Cómo iniciar un nuevo hilo de ejecución?
Crear un objeto de tipo Thread y asignarle un Runnable (trabajo) e iniciar el hilo.

10 Ciclo de vida de un hilo

11 Thread Scheduler Decide cuál hilo se ejecuta después.
No puedo saber el orden de ejecución de los hilos!

12 Dormir un hilo Permite tener un poco más de control sobre el orden de ejecución. Cuando termina el tiempo, el hilo queda en estado ejecutable

13 Aplicaciones Cliente-Servidor
Modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes.

14 ¿Cómo funcionan? - Chat

15 Pasos

16 Sockets Un Socket es un objeto que representa una conexión entre dos máquinas. Una conexión implica que cada una de las máquinas conoce la ip de la otra máquina y el puerto a través del cual se van a comunicar. Los puertos 0 a 1023 están reservados.

17 Establecer la conexión inicial

18 Servidor El servidor debe estar atento a los clientes que se quieren conectar.

19 Servidor

20 Servidor

21 Multiusuario Cada usuario se maneja en un hilo aparte.

22 Comunicación con el cliente

23 Protocolo de comunicación
Establece las reglas de comunicación entre el cliente y el servidor. ¿Quién habla primero? ¿Qué comandos puede recibir el servidor? ¿Qué acciones se realizan en cada comando?

24 Protocolo: Ejemplo Registrar usuario Opción A:
1. Envío mensaje al servidor 2. Envío todos los datos en un orden específico. Opción B: 1. Envío comando al servidor 2. El servidor pide de uno a uno los datos.

25 Preguntas ¿Cuáles son los pasos para iniciar un nuevo hilo de ejecución y el código en java? ¿Cómo puedo decirle a un hilo que espere un segundo? ¿Qué es un socket? ¿Cómo se crea? ¿Qué clase necesito para leer de un stream de un socket? ¿Para escribir en el stream del socket? Escriba el código en java para crearlas.

26 Taller Descargar los ejemplos del aula virtual, correrlos y entenderlos. El ejemplo de hilos tiene partes de código comentadas, correrlo con el código comentado y no comentado. Realizar el taller 9 del aula virtual El jueves hay quiz!


Descargar ppt "Introducción a Programación Concurrente"

Presentaciones similares


Anuncios Google