import java.io.*; import java.lang.*; class Semaforo { int value; public Semaforo() { value = 1; } public Semaforo(int value) { this.value = value; } public synchronized void up() { value++; notify(); } public synchronized void down() { while (value<=0) {try { wait();}catch(InterruptedException e) { }; } value--; } } class buffer { public Semaforo mutex = new Semaforo(1); public Semaforo blocco = new Semaforo(1); public int nlett; // numero di lettori } class lettore extends Thread { buffer dato; int numero; /* numero del lettore */ int cont; // numero di letture public lettore(buffer dato,int numero,int cont) {this.dato=dato;this.numero=numero;this.cont=cont;} public void run() { for (int i=0;i