PSP - Tarea 02
PSP - Tarea 02
Ej 1
Bufer
import java.util.logging.Level;
import java.util.logging.Logger;
public class PSP_tarea02 {
public static void main(String[] args) {
try {PSP02_Bufer b = new PSP02_Bufer(6);
PSP02_Productor p = new PSP02_Productor(b);
PSP02_Consumidor c = new PSP02_Consumidor(b);
p.start();
Thread.sleep(3000);
c.start();
p.join();
c.join();
System.out.println("Programa terminada");
} catch (InterruptedException ex) {
Logger.getLogger(PSP_tarea02.class.getName()).log(Level.SEVERE, null, ex);}}}
Productor
import java.util.logging.Level;
import java.util.logging.Logger;
Consumidor
import static java.lang.Thread.sleep;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.logging.Logger;
public class PSP_tarea02 {
public static void main(String[] args) {
try {PSP02_Bufer b = new PSP02_Bufer(6);
PSP02_Productor p = new PSP02_Productor(b);
PSP02_Consumidor c = new PSP02_Consumidor(b);
p.start();
Thread.sleep(3000);
c.start();
p.join();
c.join();
System.out.println("Programa terminada");
} catch (InterruptedException ex) {
Logger.getLogger(PSP_tarea02.class.getName()).log(Level.SEVERE, null, ex);}}}
El resultado:
Ejers. 2
Primero creamos clase Mesa con array de Semaphore. Creamos métodos para palitos de
izquierda y derecha. También añadimos métodos takechopsticks y putchopsticks; si un filósofo
coge palitos siguiente tiene que esperar.
Mesa
import java.util.concurrent.Semaphore;
class Mesa {
private Semaphore[] chopsticks;
Philosofo
import java.util.logging.Level;
import java.util.logging.Logger;
Main