Skip to content
面试手册
Search
K
Main Navigation
首页
Java
Java基础面试题
JVM面试题
Java并发编程面试题
数据库
MySQL面试题
Redis面试题
MyBatis面试题
微服务
Spring面试题
SpringMVC面试题
SpringBoot面试题
SpringCloud面试题
Dubbo面试题
MQ
消息队列基础
RabbitMQ精选面试题
Kafka精选面试题
RocketMQ精选面试题
学习
Java
SpringBoot
GitHub
Twitter
Appearance
GitHub
Twitter
Menu
Return to top
目录概览
Table of Contents for current page
怎么防止死锁?
#
我们只要破坏产生死锁的四个条件中的其中一个就可以了。
尽量使用 tryLock(long timeout, TimeUnit unit)的方法(ReentrantLock、ReentrantReadWriteLock),设置超时时间,超时可以退出防止死锁。
尽量使用 Java.util.concurrent 并发类代替自己手写锁。
尽量降低锁的使用粒度,尽量不要几个功能用同一把锁。
尽量减少同步的代码块。