阅读量: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()方法通知另一个线程可以执行,然后自己进入等待状态。这样就实现了两个线程交替打印的效果。