Skip to content

bbbscxy/concurrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

1、synchronized和lock有什么区别?

  • synchronized属于jvm层面,在字节码中使用monitorenter和monitorexit指令来实现, 其中wait和notify方法也依赖于monitor对象才能调用,而lock是api层面的类
  • 使用synchronized不需要用户手动去释放锁,执行完之后系统会自动释放,而lock类 需要用户配合try/finally语句,手动调用unlock去完成
  • synchronized不可中断,除非正常运行完毕或抛出异常,而ReentrantLock可以中断, 并可以设置超时时间
  • synchronized和ReentrantLock默认都是非公平锁,但是ReentrantLock可以设置为非 公平锁
  • ReentrantLock可以绑定多个条件condition,分组唤醒不同的线程,而synchronized 要么随机唤醒一个,要么唤醒全部

About

高并发项目笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages