• ReentrantLock和Synchornized区别

Synchornized是java内建的同步机制,java1.5之前是java唯一的同步机制,可以作用于方法或者代码块,非公平锁

ReentrantLock是可重入锁,使用lock()\unlock()方法进行锁定,解锁,还提供啦一些类似公平锁的实现,提供公平锁和非公平锁两种实现。

Synchornized在java1.6之前是基于操作系统的互斥锁,涉及用户态和内核态的切换,因此之前性能比较低,后续引入了偏斜锁、轻量级锁、重量级锁,优化性能

  • 一个线程调用两次start()方法会怎样,

第二次调用会抛出illegalThreadStateException.

Thread几个状态:New\Runnable\blocked\waiting\time_wating

面试-java基础(5)

  • 什么情况下会产生死锁,如何定位和修复

两个线程互相持有锁,都在等待对方的锁释放面试-java基础(5)

定位方法,使用top命令,查找出进程,转换16进制,jstack命令查看线程栈信息

 

 

相关文章:

  • 2021-08-01
  • 2021-07-25
  • 2021-06-08
  • 2022-12-23
  • 2021-08-09
猜你喜欢
  • 2021-12-30
  • 2021-08-31
  • 2021-12-25
  • 2021-10-04
  • 2021-11-05
  • 2021-07-09
  • 2022-01-11
相关资源
相似解决方案