91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
确山县| 内乡县| 当阳市| 涡阳县| 义乌市| 二连浩特市| 卢龙县| 建水县| 新田县| 昌平区| 荣昌县| 濉溪县| 新和县| 信宜市| 沙湾县| 丹阳市| 三亚市| 灵石县| 通化县| 固镇县| 汤原县| 肥西县| 鱼台县| 曲水县| 大英县| 会泽县| 高州市| 二连浩特市| 邵阳县| 宝应县| 长阳| SHOW| 紫云| 娄底市| 大新县| 周口市| 喀喇沁旗| 当雄县| 五家渠市| 绍兴县| 上思县|