有线程A打印1~52的数字
有线程B打印a~z的字符
交替 执行打印出:12a 34b 56c 78d .... 5152z
public class MyThread {
private static int value1=1;
private static char value2='a';
private static boolean flag = false;
private static Object obj = new Object();
public static void main(String args[]){
new Thread(new Runnable() {
@Override
public void run() {
while (value1<=52){
synchronized (obj){
if(flag){
try {
obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
System.out.print(value1++);
System.out.print(value1++);
flag=true;
obj.notifyAll();
}
}
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
while (value2<='z'){
synchronized (obj){
if(flag){
System.out.println(value2++);
flag=false;
obj.notifyAll();
}else {
try {
obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}).start();
}
}