`
xussen
  • 浏览: 30149 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

信号(Semaphore)源码

阅读更多
成员:sync
方法:acquire acquire(int) acquireUnInterruptibly acquireUnInterruptily(int) tryAcquire tryAcquire(int) tryAcquire(long, TimeUnit)  tryAcquire(int, long, TimeUnit)
release  release(int) 
availablePermits  drainPermits  isFair  hasQueueThreads  getQueueLength
内部类:Sync  NonFairSync  FairSync
两个子Sync都覆盖了tryAcquireShared
非公平的是拿当前状态和acquires相减然后compareAndSetState
公平的比非公平的多一个步骤,就是在之前通过getFirstQueuedThread获取线程和当前线程相比,FIFO公平
 
tryAcquireShared
tryAcquire
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics