``` import java.util.concurrent.atomic.AtomicInteger; public class AlternatePrint { // 使用原子整数作为共享变量,初始值为1表示轮到线程1打印第一个数字 private static AtomicInteger turn = new AtomicInteger(1); // 当前要打印的数字 private static int currentNumber = 1; // 定义终止条件 private static final int MAX_NUMBER = 100; public static void main(String[] args) { // 创建两个线程 Thread thread1 = new Thread(() -> { while (currentNumber <= MAX_NUMBER) { // 线程1检查是否轮到自己 if (turn.get() == 1) { System.out.println("线程1: " + currentNumber); // 切换到线程2 turn.set(2); } // 短暂休眠以避免CPU过度使用 try { Thread.sleep(10); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return; } } }); Thread thread2 = new Thread(() -> { while (currentNumber <= MAX_NUMBER) { // 线程2检查是否轮到自己 if (turn.get() == 2) { System.out.println("线程2: " + currentNumber); // 增加当前数字 currentNumber++; // 切换回线程1 turn.set(1); } // 短暂休眠 try { Thread.sleep(10); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return; } } }); // 启动线程 thread1.start(); thread2.start(); // 等待线程结束 try { thread1.join(); thread2.join(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } System.out.println("所有数字打印完毕"); } } ```