以下是一个可能的解决方案,使用 Java 的多线程机制来实现:
public class PrintNumbers { private static final int NUM_THREADS = 3; private static final int NUM_打印NS = 100; private static int numToPrint = 1; private static int threadNumToPrint = 1; private static final Object lock = new Object(); public static void main(String[] args) { Thread thread1 = new Thread(new Runnable() { public void run() { while (numToPrint < NUM_打印NS) { synchronized (lock) { if (numToPrint < NUM_打印NS) { System.out.println(Thread.currentThread().getName() + ": " + numToPrint); numToPrint++; } } } } }); Thread thread2 = new Thread(new Runnable() { public void run() { while (threadNumToPrint < NUM_打印NS) { synchronized (lock) { if (threadNumToPrint < NUM_打印NS) { System.out.println(Thread.currentThread().getName() + ": " + threadNumToPrint); threadNumToPrint++; } } } } }); Thread thread3 = new Thread(new Runnable() { public void run() { while (threadNumToPrint < NUM_打印NS) { synchronized (lock) { if (threadNumToPrint < NUM_打印NS) { System.out.println(Thread.currentThread().getName() + ": " + threadNumToPrint); threadNumToPrint++; } } } } }); thread1.start(); thread2.start(); thread3.start(); } }
在上面的代码中,我们创建了三个线程,每个线程都循环打印数字。我们使用了一个静态变量 numToPrint
和三个静态变量 threadNumToPrint
,这些变量都表示要打印的数字。我们还使用了一个静态的对象 lock
来确保同步和避免竞争条件。在每个线程中,我们使用 synchronized
块来确保每次只有一个线程可以访问共享资源,并打印数字。这样,我们就可以实现三个线程循环打印数字 1 到 100 的需求。