Semaphore
允许您将许可增加到超出初始数量的范围。这可以用于例如节流。acquire()/release()
根据某些逻辑,工作线程将执行此操作,并且节流器将减少/增加许可。
release()方法用于增加许可,因为从文档开始:
不要求释放许可证的线程必须通过调用acquire获取该许可证。通过在应用程序中编程约定,可以正确使用信号量。
换一种说法:
semaphore.release(10),将在当前许可的基础上再增加10个许可
release()
如果该线程先前未从该线程获得许可,则可以将其视为“创建”另一个许可Semaphore
。