这里使用JUC包下的LockSupport类实现
package test;
import java.util.concurrent.locks.LockSupport;
public class PrintingXYZ {
private static Thread xThread, yThread, zThread;
private static final int PRINT_COUNT = 10;
public static void main(String[] args) {
xThread = new Thread(() -> {
for (int i = 0; i < PRINT_COUNT; i++) {
LockSupport.park();
System.out.print("X");
LockSupport.unpark(yThread);
}
});
yThread = new Thread(() -> {
for (int i = 0; i < PRINT_COUNT; i++) {
LockSupport.park();
System.out.print("Y");
LockSupport.unpark(zThread);
}
});
zThread = new Thread(() -> {
for (int i = 0; i < PRINT_COUNT; i++) {
LockSupport.park();
System.out.print("Z");
LockSupport.unpark(xThread);
}
});
xThread.start();
yThread.start();
zThread.start();
//给xThread许可让其先执行
LockSupport.unpark(xThread);
}
}