synchronized与lock什么区别

  |   0 评论   |   1,242 浏览

    通过五个维度

    1.构造:构造方式不同(sync是jvm层面的,lock是接口,api层的锁)
    2.使用方法:不需要手动释放,lock需要手动释放
    3.中断:sync不可中断,lock可中断(trylock(timeout,unit) 和 lockInterruptibly()放代码块中,调用interrupt()中断)
    4.加锁是否公平:sync 非公平,lock 都可以,默认是非公平锁
    5.锁可以绑定多个条件,sync不支持,lock可以绑定多个唤醒(condition)条件,精准唤醒某一类线程

    评论

    发表评论

    validate