AST - Práctica 2. SyncABs - Intro Concurrencia (Memoria paso a paso) PDF

Title AST - Práctica 2. SyncABs - Intro Concurrencia (Memoria paso a paso)
Course Aplicaciones y Servicios Telemáticos
Institution Universitat Politècnica de Catalunya
Pages 4
File Size 374.8 KB
File Type PDF
Total Downloads 104
Total Views 150

Summary

Práctica 2 AST Sincronizas As y Bs por pantalla....


Description

Javier de la Rica Palma

AST: Práctica 2

_

INTRODUCCIÓN A LA CONCURRENCIA HILOS DE EJECUCIÓN Y SINCRONIZACIÓN BÁSICA CON ESPERA ACTIVA 1. Realizar un programa con dos threads, en el que uno de los threads imprima letras A por pantalla y el otro thread imprima letras B. ¿Qué se observa?

Podemos observar que se imprimen letras A y letras B aleatoriamente, sin ningún orden: ABBBBBBAAAABBABABBAAAABBB […]

Javier de la Rica Palma

AST: Práctica 2

_

2. Utilizar el método sleep() de la clase Thread para modificar el programa de forma que las letras A y B se impriman de forma intercaladas una a una: A B A B A B A B A B A B A B A B […] ¿Qué se observa? ¿Se consigue un intercalado perfecto? Comprobarlo guardando la salida en un fichero: java ABsleep > /tmp/ABsleep.log y ejecutando el script sed n ‘H;x;s/\(.\1/\0\n--/p’ /tmp/ABsleep.log Si sale alguna cosa por la consola es que hay alguna A o B que se repite.

Podemos observar como a la salida obtenemos las letras A y B intermitentemente, pero en algunos momentos nos encontramos letras repetidas.

Javier de la Rica Palma

AST: Práctica 2

_

3. Hallar un entrelazado que justifique el comportamiento anómalo del apartado anterior. ¿Cómo conseguiríais evitar que salgan A’s o B’s repetidas utilizando únicamente sleep()? Para concluir: ¿es sleep() un buen mecanismo para conseguir la alternancia de letras? ¿Por qué? Podríamos poner un tiempo de “espera” mayor, en vez de 500, 1000ms: sleep(1000). De ésta manera el procesador debe esperar en cada turno y no van pasando uno a uno. De todos modos, éste no es un buen método ya que es muy lento. (Debe pasar 1 segundo entre impresión e impresión).

4. Resolver el apartado anterior utilizando una variable simple compartida que en un estado permite escribir A y en el otro B. Haced servir la plantilla siguiente programando a clase auxiliar necesaria.

Javier de la Rica Palma

AST: Práctica 2

La clase Flag es la que nos sirve para compartir la misma variable en ambos threads.

_...


Similar Free PDFs