1. 程式人生 > 其它 >java兩個執行緒交替列印數字

java兩個執行緒交替列印數字

實現方法

通過Object的通訊wait,notify來實現兩個執行緒的功能

原理:
需要一把鎖,和一個可以通訊的類,用鎖來控制兩個執行緒的競爭,用通訊類來讓執行緒 等待 和 喚醒

public static void main(String[] args) {
        // 建立鎖物件
        final Object object = new Object();
        // 建立執行緒A,開啟執行緒
        new Thread(() -> {
            for (int i = 1; i < 100; i++) {
                synchronized (object) {
                    System.out.println(Thread.currentThread().getName() + " " + i);
                    object.notify();
                    try {
                        object.wait();
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }, "A").start();

        // 建立執行緒B
        new Thread(() -> {
            for (int i = 1; i < 100; i++) {
                synchronized (object) {
                    System.out.println(Thread.currentThread().getName() + " " + i);
                    object.notify();
                    try {
                        object.wait();
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }, "B").start();
    }