思路
1. 创建3个线程,分别命名A、B、C。需要线程次序调用,则一定需要锁的*同步*与*通信*来控制
2.1 为每个线程创建时分配数字id,并统计总执行次数count,使用 *count % 线程数量 == id* 命令当前线程进行输出,从而达到顺序输出
2.2 一个线程体内部维护一个锁的3个Condition实现不同输出方法的分组等待+分组唤醒
java实现
一、synchronized 实现
public class ABCAlternate {
public static void main(String[] args) {
Printer.threadNumber = 3;
for (int i = 0; i < Printer.threadNumber; i++) {
new Thread(new Printer(i),String.valueOf((char)(i+'A'))).start();
}
}
}
class Printer implements Runnable{
public static int threadNumber;
private int id;
private static int count;
public Printer(int id) {
this.id = id;
}
@Override
public void run() {
for (int i = 0; i < 10