Semaphore
2021-04-16 10:55:53 0 举报
Semaphore
作者其他创作
大纲/内容
Semaphore
Semaphore:信号量默认会创建非公平的阻塞队列
head
AQS
semaphore.release():释放令牌,用CAS修改state=state+1,然后唤醒等待队列的头结点;
state
semaphore.acquire():尝试获取令牌,用CAS修改state=state-1,如果计算的state<0则令牌数目不足,将线程加入到阻塞队列中,当计算的state>=0,则获取令牌成功。
初始化Semaphore:Semaphore semaphore = new Semaphore(2);会把Semaphore的参数初始化为state
0 条评论
下一页