基本上我有一个线程获得许可和许多其他线程释放许可。系统是这样获取线程休眠,直到其他线程促使他去工作。
像这样的东西
function work(){
while(true){
this.semaphore.waitOne();
doALotOfStuff();
}
}
function prod(){
this.semaphore.release();
}
问题是,当我 prod() 太多时,我得到一个 SemaphoreFullException。我可以将最大信号量设置为某个非常高的数字,但我不喜欢这个想法,我希望它这样做this.semaphore.acquire(this.semaphore.numberOfPermits)