三个线程分别打印"A"、“B”、“C”,现在需要完成三个线程交替打印,10个ABC
public class Main {
private static AtomicInteger index = new AtomicInteger(0);
private static AtomicInteger epoches = new AtomicInteger(0);
static Thread A = new ThreadA();
static Thread B = new ThreadB();
static Thread C = new ThreadC();
public static void main(String[] args) {
A.start();
B.start();
C.start();
}
static class ThreadA extends Thread {
@Override
public void run() {
while (true) {
if (index.get() % 3 == 0 && epoches.get() < 10) {
index.getAndIncrement();
System.out.println("A");
} else {
Thread.yield();
}
}
}
}
static class ThreadB extends Thread {
@Override
public void run() {
while (true) {
if (index.get() % 3 == 1 && epoches.get() < 10) {
index.getAndIncrement();
System.out.println("B");
} else {
Thread.yield();
}
}
}
}
static class ThreadC extends Thread {
@Override
public void run() {
while (true) {
if (index.get() % 3 == 2 && epoches.get() < 10) {
index.getAndIncrement();
epoches.getAndIncrement();
System.out.println("C");
} else {
Thread.yield();
}
}
}
}
}