亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java多線程交替打印奇偶數怎么實現

小億
117
2024-09-03 10:37:45
欄目: 編程語言

在Java中,可以使用synchronized關鍵字和wait()notify()方法來實現多線程交替打印奇偶數。下面是一個簡單的示例:

public class AlternatePrinting {

    private static final Object lock = new Object();
    private static int count = 1;

    public static void main(String[] args) {
        Thread oddThread = new Thread(new OddNumberPrinter(), "OddThread");
        Thread evenThread = new Thread(new EvenNumberPrinter(), "EvenThread");

        oddThread.start();
        evenThread.start();
    }

    static class OddNumberPrinter implements Runnable {
        @Override
        public void run() {
            while (count <= 100) {
                synchronized (lock) {
                    if (count % 2 == 1) {
                        System.out.println(Thread.currentThread().getName() + ": " + count++);
                        lock.notify();
                    } else {
                        try {
                            lock.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }

    static class EvenNumberPrinter implements Runnable {
        @Override
        public void run() {
            while (count <= 100) {
                synchronized (lock) {
                    if (count % 2 == 0) {
                        System.out.println(Thread.currentThread().getName() + ": " + count++);
                        lock.notify();
                    } else {
                        try {
                            lock.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
}

在這個示例中,我們創建了兩個線程:oddThreadevenThreadoddThread負責打印奇數,evenThread負責打印偶數。它們共享一個鎖對象lock和一個靜態變量count

count為奇數時,oddThread獲取鎖并打印數字,然后增加count并調用lock.notify()喚醒等待的線程。接著,oddThread調用lock.wait()釋放鎖并進入等待狀態。

count為偶數時,evenThread的行為與oddThread類似。

這樣,兩個線程就可以交替打印奇偶數了。

0
搜索| 林西县| 周宁县| 红安县| 隆化县| 宽城| 平顺县| 镶黄旗| 石河子市| 深州市| 女性| 遂川县| 家居| 吉安县| 深泽县| 广南县| 胶州市| 志丹县| 沂水县| 思南县| 庄河市| 衡阳县| 临夏市| 邯郸市| 和林格尔县| 嘉黎县| 通辽市| 南京市| 武城县| 阳新县| 吴川市| 内黄县| 阳谷县| 鞍山市| 荃湾区| 册亨县| 平远县| 五常市| 元阳县| 邹城市| 肇东市|