面试-java基础(5)

  • ReentrantLock和Synchornized区别

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

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

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

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

第二次调用会抛出illegalThreadStateException.

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

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

两个线程互相持有锁,都在等待对方的锁释放

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值