基本思路:使用wait/notify机制。
public class ThreadTest{
public static void main(String[] args){
Object lock = new Object();
Thread a = new A(lock);
Thread b = new B(lock);
a.start();
b.start();
}
}
class A extends Thread{
Object lock;
public A(Object lock){
this.lock = lock;
}
@Override
public void run (){
synchronized(lock){
for (int i = 1; i <= 8; i++) {
System.out.println(i);
if(i%2 == 0){
try{
lock.notify();
lock.wait();
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
}
}
class B extends Thread{
Object lock;
public B(Object lock){
this.lock = lock;
}
@Override
public void run (){
synchronized(lock){
for (int i = 1; i <= 4; i++) {
System.out.println((char)(i+64));
try{
lock.notify();
lock.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
}