思路:
- 有类。
- 有线程,那么这个类即是一个线程实现类。
- 轮流打印 即:资源抢占。
- 资源抢占 即:锁的抢占。
- 有锁的抢占即有锁的释放。
public class Print implements Runnable{
Integer[] i;
Object obj ;
public Print(Integer[] i) {
this.i=i;
this.obj=i;
}
@Override
public void run() {
for (; i[0]<100;) {
synchronized (obj) {
obj.notify();
try {
obj.wait();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("------->" + Thread.currentThread().getName() + ":" + i[0]);
i[0]=i[0]+1;
obj.notify();
}
}
}
public static void main(String[] args) throws InterruptedException {
Integer[] w= {0};
Thread t1= new Thread(new Print(w),"r1");
Thread t2= new Thread(new Print(w),"r2");
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("============");
}
}