两个线程,一个输出A~Z,一个输出1~26,但是是间隔输出,结果是A1B2C3...Z26

582 阅读1分钟
/**
 * 两个线程,一个输出A~Z,一个输出1~26,,但是是间隔输出,结果是A1B2C3...Z26
 * 
 */
public class ThreadTest1 {

    public static void main(String[] args) {
        Object lock = new Object();

        new Thread(() -> {
            synchronized (lock) {
                for (int i = 0; i < 26; i++) {
                    System.out.print((char) (65 + i));

                    lock.notify();
                    try {
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();

        new Thread(() -> {
            synchronized (lock) {
                for (int i = 0; i < 26; i++) {
                    System.out.print(i + 1);

                    lock.notify();
                    try {
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }

            }
        }).start();
    }
}