1.题目描述
启动三个线程,三个线程名称分别是A,B,C;每个线程将自己的名称在屏幕上打印5遍,打印顺序是ABCABCABCABCABC
2.解题思路
2.1写打印A、B、C的方法
//设置标记位,判断应该打印哪个线程名
private int flag = 1;
//记录打印次数
private int count = 1;
//打印线程名称A方法
// 顺序打印,用锁
public synchronized void PrintA(){
// 如果falg不为1,等待
while (flag != 1){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 打印当前线程名
System.out.print(Thread.currentThread().getName());
// 使其可以进入打印线程B方法
flag = 2;
notifyAll();
// 打印次数+1
count++;
}
//打印线程名称B方法
public synchronized void PrintB(){
while (flag != 2){
try {
wait();
} catch (