• 显示锁(ReentranLock)


    1. Lock接口:定义了一组抽象的加锁操作,提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显示的。

    2. ReentrantLock锁:实现了Lock接口,并提供了与synchronized相同的互斥性和内存可见性,也提供了可重入的加锁语义。finally后需要调用unlock,一旦忘记,则会埋下一颗定时炸弹。

    (1)目的:内置锁无法中断一个等待获取锁的线程,或者无法在请求一个锁时无限地等待下去。

    (2)轮询锁与定时锁:此类锁的获取模式是由tryLock方法实现的,具有更完善的错误恢复机制。

    内置锁中,死锁是一个很严重的问题,恢复程序的唯一办法是重新启动程序,而防止死锁的唯一办法是在构造程序时避免出现不一致的锁顺序;内置锁很难实现带有时间限制的操作。

    而可定时与可轮询的锁提供了:避免死锁的发生。

    (3)可中断的锁和非快结构的加锁

  • 相关阅读:
    JavaScript.how-to-debug-javascript
    iOS.mach_absolute_time
    Startup.国外新锐公司及其技术Blog
    Android.FamousBlogs
    iOS.PrototypeTools
    Android.API.Context.getFilesDir()
    Android.Tools.Ant
    Tools.OnlineAPIs
    Java.Class
    Android.StructureOfAndroidSourceCodeRootTree
  • 原文地址:https://www.cnblogs.com/changna1314/p/6816492.html
Copyright © 2020-2023  润新知