admin管理员组

文章数量:1122859

面试题

文章目录

  • 高并发
  • 数据库
  • 分布式
  • 缓存
  • JVM
  • 运维
  • spring
  • web
  • 微服务
  • 设计模式
  • Java
  • MyBatis
  • HashMap

高并发

问:Java中的锁有几种?
答:公平锁/非公平锁
公平锁是指多个线程按照申请锁的顺序来获取锁。
非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。
对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。
对于Synchronized而言,也是一种非公平锁。由于其并不像ReentrantLock是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。

可重入锁
可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。

本文标签: 面试题