如果不公平的信号量许可不能立即获得,那么tryAcquire(long timeout, TimeUnit unit)块会一直到许可可用(即屈服执行),还是会一直旋转到许可可用为止?
如果调用自旋,并且一个系统有大量的信号量,那么系统运行的不是有很多旋转信号量的风险吗?
发布于 2012-10-03 12:55:32
根据javadoc:
如果没有许可,则当前线程将被禁用以用于线程调度,并处于休眠状态,直到发生以下三种情况之一:
这表明线程被标记为阻塞(将阻塞队列设置为灰色状态),这允许处理器执行其他工作。
https://stackoverflow.com/questions/12708871
复制相似问题