hustguojiecheng 2012-03-04 22:02
浏览 474
已采纳

ReentrantLock比synchronized 强大在哪儿?

官方说明:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。

强大在哪儿?求高人解释。

  • 写回答

4条回答

  • justin051 2012-03-07 10:26
    关注

    回楼主,其实提到了,Synchronized只能在方法或者块上加锁,而lock可以只对某条语句进行加锁。

    再回楼主,您说的没有特别指出ReentrantLock的好处,其实我列举的三点应该都比较明显了:
    1、在某些场合下,确实需要获得锁的时间与申请锁的时间相一致,但是Synchronized做不到。

    2、如果不支持中断处理,那么线程可能一直无限制的等待下去,就算那些正在占用资源的线程死锁了,正在等待的那些资源还是会继续等待,但是ReentrantLock可以选择放弃等待。

    3、关于Condition这个强大的特性都可以另开一贴了,建议仔细查看API。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据