public class Test {
public static void main(String[] args) {
A a = new A();
new Thread(a,"A").start();
new Thread(a,"B").start();
}
}
class A implements Runnable {
int i = 1;
@Override
public void run() {
while (true) {
synchronized (this) {
notify();
if (i<=100) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" "+i);
i++;
} else {
break;
}
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}