вот задачка на "производителя-потребителя". не понимаю как semCon может разрешать вход, есди у него кол-во разрешений равно 0?
import java.util.concurrent.Semaphore;
/**
* Created by Dell on 16.09.2014.
*/
public class Exchanger {
volatile int someRandomValue;
volatile boolean isFilled = false;
Semaphore semProd = new Semaphore(1);
Semaphore semCon = new Semaphore(0);
void put(int n){
try {
semProd.acquire();
}
catch (InterruptedException e){
e.printStackTrace();
}
someRandomValue = n;
System.out.println("Сгенерировано значение " + someRandomValue);
semCon.release();
}
int read(){
try{
semCon.acquire();
}
catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("Считано занчение " + someRandomValue);
semProd.release();
return someRandomValue;
}
}