跳至内容
wiki
用户工具
登录
站点工具
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
最近更改
媒体管理器
网站地图
您的足迹:
分享:技术:多线程:synchronized和lock的区别
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== synchronized和lock的区别 ====== ===== 相同点 ===== Lock能完成synchronized所实现的所有功能 ===== 不同点 ===== - Lock有比synchronized更精确的线程语义和更好的性能。 - synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。 - 资源竞争不激烈,Synchronized的性能要优于ReetrantLock - 资源竞争很激烈,Synchronized的性能会下降几十倍,但是ReetrantLock的性能能维持常态 ===== synchronized用法 ===== - 锁代码块 - 锁方法 ===== ReentrantLock用法 ===== - lock(), 如果获取了锁立即返回,如果别的线程持有锁,当前线程则一直处于休眠状态,直到获取锁 - tryLock(), 如果获取了锁立即返回true,如果别的线程正持有锁,立即返回false; - tryLock(long timeout,TimeUnit unit), 如果获取了锁定立即返回true,如果别的线程正持有锁,会等待参数给定的时间,在等待的过程中,如果获取了锁定,就返回true,如果等待超时,返回false; - lockInterruptibly:如果获取了锁定立即返回,如果没有获取锁定,当前线程处于休眠状态,直到或者锁定,或者当前线程被别的线程中断
分享/技术/多线程/synchronized和lock的区别.txt
· 最后更改: 2017/05/15 06:45 由
gxx
页面工具
显示页面
修订记录
反向链接
回到顶部