1.Semaphore是什么?
Semaphore字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。
2.怎么使用Semaphore?
2.1构造方法
public Semaphore(int permits)
public Semaphore(int permits, boolean fair)
permits表示许可线程的数量
fair表示公平性,如果这个设为true的话,下次执行的线程会是等待最久的线
程
2.2重要方法
public void acquire() throws InterruptedException
public void release()
tryAcquire(long timeout, TimeUnit unit)
acquire()表示阻塞并获取许可
release()表示释放许可
2.3基本使用
2.3.1需求场景
资源访问,服务限流。
2.3.2代码实现
publicclassSemaphoreSample{
publicstaticvoidmain(String[]args){
Semaphoresemaphore=newSemaphore(2);
for(inti=0;i<5;i++){
newThread(newTask(semaphore,"yangguo+"+i)).start();
}
}
staticclassTaskextendsThread{
Semaphoresemaphore;
评论0
最新资源