简述synchronized和java.util.concurrent.locks.Lock的异同
2024-08-31 06:38:22
1.synchronized 用在方法和代码块的区别?
a. 可以只对需要同步的使用
b.与wait(),notify()和notifyall()方法使用比较方便
2.wait()
a。释放持有的对象锁,线程进入等待池,释放cpu,其他正在等待的线程可以获得锁,而sleep方法,线程会休眠一段时间,线程不会释放锁。
3.ReentrantLock
还包括了中断锁等待和定时锁等待,
在并发量小的时候,用synchronize是比较好的选择,并发量大的时候用Lock。
synchronize是自动释放锁,Lock是主动释放锁
Lock可以设定所等待的时间,
有些操作不会发生冲突现象,需要用Lock解决,比如同时读文件。
最新文章
- Azure Site to Site VPN 配置手册
- .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
- JavaWeb基础: 获取资源文件
- 【转】【WPF】资源读取 URI
- GPS之NMEA协议20160526
- EntityFramework 中生成的类加注释
- Reward HDU
- %02d
- 使用pillow生成分享图片
- laravel webpack填坑(陆续更)
- c++ <;stdarg.h>; 解决变参问题的宏定义;
- Sharepoint 2016 配置FBA(四)添加用户到Membership数据库
- jsp页面选择文件上传,获取不到绝对路径问题
- Bootstrap 按钮颜色
- myBatis框架之入门(一)
- 闲话函数式变成与OOP
- Android Studio 调试系列之分析堆栈调用
- elasticsearch使用More like this实现基于内容的推荐
- PhantomJS 远程做调试
- JDBC处理可滚动的处理集