转:https://blog.csdn.net/zcyt085/article/details/108435529
这个文章,简单明了。
总结一下读后感:
解决死锁的几个种方式
1、维护一个集合,把已经上锁的对象放到集合中去。每次要加锁前,先操作这个集合。操作集合的过程是synchronized的。不能用 cocurrent里面的集合。
2、有序加锁。每次都从小到大地获取锁,获取不到,就等待。
3、使用tryLock,如果不能同时获取,则同时释放
转:https://blog.csdn.net/zcyt085/article/details/108435529
这个文章,简单明了。
总结一下读后感:
解决死锁的几个种方式
1、维护一个集合,把已经上锁的对象放到集合中去。每次要加锁前,先操作这个集合。操作集合的过程是synchronized的。不能用 cocurrent里面的集合。
2、有序加锁。每次都从小到大地获取锁,获取不到,就等待。
3、使用tryLock,如果不能同时获取,则同时释放