java怎么交替打印奇偶数

   2024-09-30 2940
核心提示:在Java中,你可以使用两个线程来交替打印奇数和偶数。这里是一个简单的示例:public class AlternatePrinting {private static v

在Java中,你可以使用两个线程来交替打印奇数和偶数。这里是一个简单的示例:

public class AlternatePrinting {    private static volatile int counter = 1;    public static void main(String[] args) {        Object lock = new Object();        Thread oddThread = new Thread(() -> {            while (counter <= 100) {                synchronized (lock) {                    if (counter % 2 == 1) {                        System.out.println("Odd: " + counter);                        counter++;                        lock.notify();                    } else {                        try {                            lock.wait();                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                    }                }            }        });        Thread evenThread = new Thread(() -> {            while (counter <= 100) {                synchronized (lock) {                    if (counter % 2 == 0) {                        System.out.println("Even: " + counter);                        counter++;                        lock.notify();                    } else {                        try {                            lock.wait();                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                    }                }            }        });        oddThread.start();        evenThread.start();    }}

在这个示例中,我们创建了两个线程:oddThreadevenThread。这两个线程共享一个锁对象 lock 和一个静态变量 counter。当 counter 为奇数时,oddThread 打印奇数并增加 counter,然后调用 lock.notify() 唤醒等待的线程。当 counter 为偶数时,evenThread 打印偶数并增加 counter,然后调用 lock.notify() 唤醒等待的线程。如果当前线程无法打印数字,它将调用 lock.wait() 进入等待状态。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号