死锁的产生条件是什么?如何避免死锁?