synchronized 和 Lock 有什么区别
【摘要】 Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现 synchronized 可以给类、方法、代码块加锁;而 lock 只能给代码块加锁。synchronized 不需要手动获取锁和释放锁,使用简单,发生异常会自动释放锁,不会造成死锁;而 lock 需要自己加锁和释放锁,如果使用不当没有 unLock()去释放锁就会造成...
Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现
synchronized 可以给类、方法、代码块加锁;而 lock 只能给代码块加锁。synchronized 不需要手动获取锁和释放锁,使用简单,发生异常会自动释放锁,不会造成死锁;而 lock 需要自己加锁和释放锁,如果使用不当没有 unLock()去释放锁就会造成死锁。通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)