Java中的线程死锁是什么?如何避免?