1.synchronized 用在方法和代码块的区别?

a. 可以只对需要同步的使用

b.与wait(),notify()和notifyall()方法使用比较方便

2.wait()

a。释放持有的对象锁,线程进入等待池,释放cpu,其他正在等待的线程可以获得锁,而sleep方法,线程会休眠一段时间,线程不会释放锁。

3.ReentrantLock

还包括了中断锁等待和定时锁等待,

在并发量小的时候,用synchronize是比较好的选择,并发量大的时候用Lock。

synchronize是自动释放锁,Lock是主动释放锁

Lock可以设定所等待的时间,

有些操作不会发生冲突现象,需要用Lock解决,比如同时读文件。

最新文章

  1. Azure Site to Site VPN 配置手册
  2. .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  3. JavaWeb基础: 获取资源文件
  4. 【转】【WPF】资源读取 URI
  5. GPS之NMEA协议20160526
  6. EntityFramework 中生成的类加注释
  7. Reward HDU
  8. %02d
  9. 使用pillow生成分享图片
  10. laravel webpack填坑(陆续更)
  11. c++ <stdarg.h> 解决变参问题的宏定义;
  12. Sharepoint 2016 配置FBA(四)添加用户到Membership数据库
  13. jsp页面选择文件上传,获取不到绝对路径问题
  14. Bootstrap 按钮颜色
  15. myBatis框架之入门(一)
  16. 闲话函数式变成与OOP
  17. Android Studio 调试系列之分析堆栈调用
  18. elasticsearch使用More like this实现基于内容的推荐
  19. PhantomJS 远程做调试
  20. JDBC处理可滚动的处理集

热门文章

  1. Python 网络爬虫与信息获取(二)—— 页面内容提取
  2. CentOs7 修改rpm安装背景图
  3. PCB LDI文件 自动化输出(改造)实现思路
  4. Element-UI 笔记
  5. weui&flexible布局
  6. 阿里云 CentOS 6.5 使用XAMPP 搭建LAMP环境
  7. PHP中的魔术方法和魔术常量
  8. iframe弹出窗体丢失焦点的问题
  9. CNN结构:用于检测的CNN结构进化-分离式方法
  10. Arduino控制DTH11模块