Java运行不完整,无法运行到底

img

img

public void printA(){
    lock.lock();
    try {
        while(num != 1){
            condition1.await();
        }
        System.out.print(Thread.currentThread().getName()+"=>"+num+" ");
        num++;
        condition2.signal();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        lock.unlock();
    }
}
public void printB(){
    lock.lock();
    try {
        while(num != 2){
            condition2.await();
        }
        System.out.print(Thread.currentThread().getName()+"=>"+num+" ");
        num++;
        condition3.signal();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        lock.unlock();
    }
}
public void printC(){
    lock.lock();
    try {
        while(num != 3){
            condition1.await();
        }
        System.out.print(Thread.currentThread().getName()+"=>"+num+" ");
        num=num-2;
        condition1.signal();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        lock.unlock();
    }
}

}

img

img

pringAprintC都是condition1.await();

凌晨2点,同学你困了。。。