锁

重入锁:ReentrantLock()

  1. tryLock(5, TimeUnit.SECONDS) :可以设置时长和时间单位
  2. tryLock():也可以不用设置参数,尝试获得锁,成功返回true,失败返回false
  3. ReentrantLock(true) :重入锁可以对公平性进行设置,而synchronized是非公平的,公平锁要维护一个有序队列,所以实现成本比较高。
  4. lockInterruptibly():获得锁但是优先响应终端
  5. Condition():通过lock接口Condition()方法可以生成一个Condition对象,他是重入锁的好帮手,里面有await()和signal()与synchronized中的wait()和notify()差不多
  6. Semaphore(5):同时允许多个线程访问一个资源
  7. ReentrantReadWriteLock():由于重入锁对所有的操作都是串行的,而读操作与读操作之间并不对数据的完整性造成破坏,因此有了读写分离锁。
  8. CountDownLatch(10):倒计时器,表示要10个线程完成任务
  9. CyclicBarrier(int parties,Runnable barrierAction):barrierAction:当计数器一次完成计数之后,系统会执行的动作。parties:表示计数的总数
  10. LockSupport : 里面有park()和unpark()可以替代suspend()和resume(),因为LockSupport 为每个线程都准备一个许可,如果许可可用park()会立刻消费这个许可,如果许可不可用,unpark()会放出这个许可。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容