java两个线程交替打印怎么实现

avatar
作者
猴君
阅读量:0

可以使用synchronized关键字和wait()、notify()方法来实现两个线程交替打印。下面是一个示例代码:

public class AlternatePrint {     private static Object lock = new Object();     private static int count = 1;     private static int maxCount = 10;      public static void main(String[] args) {         Thread t1 = new Thread(() -> {             while (count <= maxCount) {                 synchronized (lock) {                     if (count % 2 == 1) {                         System.out.println(Thread.currentThread().getName() + ": " + count);                         count++;                         lock.notify();                     } else {                         try {                             lock.wait();                         } catch (InterruptedException e) {                             e.printStackTrace();                         }                     }                 }             }         });          Thread t2 = new Thread(() -> {             while (count <= maxCount) {                 synchronized (lock) {                     if (count % 2 == 0) {                         System.out.println(Thread.currentThread().getName() + ": " + count);                         count++;                         lock.notify();                     } else {                         try {                             lock.wait();                         } catch (InterruptedException e) {                             e.printStackTrace();                         }                     }                 }             }         });          t1.setName("Thread-1");         t2.setName("Thread-2");          t1.start();         t2.start();     } } 

在这个示例中,我们创建了两个线程t1和t2,它们交替打印1到10的数字。使用synchronized关键字和wait()、notify()方法来确保两个线程能够交替执行。当一个线程打印完数字后,会调用notify()方法通知另一个线程可以执行,然后自己进入等待状态。这样就实现了两个线程交替打印的效果。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!