温馨提示×

java线程怎么交替打印

小亿
87
2024-08-05 18:55:11
栏目: 编程语言

在Java中,可以使用两个线程交替打印数字。以下是一个示例代码:

public class AlternatePrinting {

    public static void main(String[] args) {
      
        Object lock = new Object();
        
        Runnable printOdd = () -> {
            synchronized(lock) {
                for (int i = 1; i <= 10; i += 2) {
                    System.out.println(i);
                    lock.notify();
                    try {
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
        
        Runnable printEven = () -> {
            synchronized(lock) {
                for (int i = 2; i <= 10; i += 2) {
                    System.out.println(i);
                    lock.notify();
                    try {
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
        
        Thread oddThread = new Thread(printOdd);
        Thread evenThread = new Thread(printEven);
        
        oddThread.start();
        evenThread.start();
    }
}

在这个示例中,我们创建了两个线程,一个线程负责打印奇数,另一个线程负责打印偶数。通过使用wait()和notify()方法,我们可以使两个线程交替打印数字。注意,我们使用一个共享锁对象来实现线程之间的同步。

0