一、三个线程顺序打印ABC10次
解决方案一:适用三个标志来标识哪个线程应该等待,分别在三个线程中使用同步代码块。
public class solution{
private static boolean flag1=true;
private static boolean flag2=false;
private static boolean flag3=false;
public static void main(String[] args){
final solution o=new solution();
Thread t1=new Thread(new Runnable(){
public void run(){
for(int i=0;i<10;i++){
while(true){
synchronized(o){
if(!flag1){
try {
o.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println(Thread.currentThread().getName());
flag1=false;
flag2=true;
flag3=false;
o.notifyAll();
break;
}
}
}
}
}
},"A");