题目:
利用三个线程分别打印字符串 A、B、C,要求循环打印十次
结果例如:
ABC
ABC
ABC
…
共打印十次
源码:
第一种写法:
public class SequencePrint {
/**
* 三个线程 A、B、C 分别打印字符串 A、B、C
* 要求:循环打印10次
* 打印结果为:
* ABC
* ABC
* ABC
* ...
* 总共打印10次
*/
private volatile static String INDEX = "A";
public static void main(String[] args) {
// 第一种写法:
Thread a = new Thread(new Runnable() {
@Override
public void run() {
try {
for (int i = 0; i < 10; i++) {
synchronized (SequencePrint.class) {
while (!INDEX.equals("A")) {
SequencePrint.class.wait();
}
System.out.print(INDEX);
INDEX = "B";
SequencePrint.class.notifyAll();
}
}