Hilos

Solo disponible en BuenasTareas
  • Páginas : 8 (1995 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de mayo de 2010
Leer documento completo
Vista previa del texto
Universidad De Oriente Núcleo Anzoátegui Departamento de computación y sistemas Taller de lenguajes de programación

Profesor: Víctor Mujica

Bachiller: Freddy González CI. 193673.244

Barcelona, 29 de junio de 2009

Justificación
La aplicación simula el movimiento de los carros dentro de un estacionamiento con servicio de limpieza con el fin de observar y estudiar la ejecución devarios subprocesos en “paralelo” para la comprensión del paradigma de programación concurrente. La maquina virtual de java donde fue compilado e interpretado el programa durante las pruebas fue JDK versión 1.6.0_13 y realizado en el entorno de trabajo JCreator Pro versión 4.50.

Ideas fundamentales
Para la elaboración de la aplicación se utilizaron las bases teóricas estudiadas en clase, en sucódigo se puede observar el uso e implementación de los semáforos, monitores, hilos, entre otras técnicas estudiadas. Para facilitar la programación los carros se mueven en ángulos rectos (horizontal y verticalmente) sobre un JPanel donde la imagen del estacionamiento es el fondo, dicho movimiento es trabajado con las coordenadas en pixeles de la imagen, el tamaño es de 800x600px. Además elestacionamiento tiene un sentido único de circulación.

Cada carro es un proceso distinto que trabaja en paralelo con todos los demás, también se creó un segundo proceso que se encarga de la creación de carros cada cierta cantidad de segundos.

Algoritmos ideados antes de la codificación del programa. //Semaforos utilizados Semaforos cantidad =25, ex = 1, lava = 1; //Proceso de los carros carro(){moverAEntrada(); espera(cantidad); espera(ex); elegirPuesto(); señal(ex); moverAPuesto(); espera(lava); Si deseoLavar() entonces irALavar(); sino irASalida(); señal(lava); salir(); señal(cantidad); } //Proceso para crear los carros crearCarro(){ mientras verdad hacer carro(); dormirHilo(tiempo); }

Clases, atributos y métodos.
• Clase Semaforos Implementación de los semáforos inventados por EdsgerDijkstra.

Clase Semaforos
Atributos private int contador Constructores public Semaforos(int maximo) Cantidad de procesos que se pueden realizar Recibe la cantidad máxima de procesos que se pueden realizar a la vez. Esta cantidad es asignada a contador.

Métodos public synchronized void espera() public synchronized void senal() Detiene un proceso si ya se ha superado el límite. Permite el pasoa un proceso más.

• Clase Carros Es una clase que hereda de Canvas donde se encuentran dibujados los carros, implementa atributos y métodos para la utilización de listas donde se considera un nodo. También ejecuta el proceso por el que se mueven los carros.

Clase Carros (extiende de Canvas e implementa Runnable y MouseListener)
Atributos private Carros previo private Carros siguienteprivate static Estacionamiento es private int x private int y private int pos private int comando private int t private Semaforos cantidad private Semaforos exclucion private Thread hilo private Color colorCarro[] private int colorAleatorio Constructores public Carros(Estacionamiento e, Semaforos cantidad, Semaforos exclucion) Métodos public void mover(int x, int y) public void desestacionar(intinicio) public void estacionar(int inicio) public void recorrer(int inicio, int fin) public void subirHasta(int y) public void subirHastaEs(int y) Apunta el carro anterior en la lista Apunta al siguiente carro en la lista Contiene al estacionamiento donde se encuentra el carro. Coordenadas en x del carro Coordenadas en y del carro Contiene la posición actual del carro con respecto a los puestos,entradas, salidas y puntos claves de la avenida. Contiene el numero de la orden que le ha dado un usuario al carro Contiene el tiempo que lleva el carro estacionado Evita la entrada de más de 25 autos al estacionamiento. Evita que más de dos carros elijan simultáneamente un puesto. Contiene el proceso que realizan los carros Arreglo con los posibles colores de los carros Índice el color que está...
tracking img