1、尽量使用超时机制,超时没有获取到锁就退出,例如ReentrantLock.tryLock(timeout, TIMEUNIT);
2、尽量使用JDK1.5以上提供的并发包下面的线程安全类,不要自己去实现线程安全类;
3、尽量降低加锁的粒度,不在多个功能中使用同一把锁;
4、尽量减少加锁的范围;
5、如果有多个锁,尽量保证各个线程的加锁顺序一致。
2、尽量使用JDK1.5以上提供的并发包下面的线程安全类,不要自己去实现线程安全类;
3、尽量降低加锁的粒度,不在多个功能中使用同一把锁;
4、尽量减少加锁的范围;
5、如果有多个锁,尽量保证各个线程的加锁顺序一致。