多线程轮流打印

思路:

  1. 有类。
  2. 有线程,那么这个类即是一个线程实现类。
  3. 轮流打印 即:资源抢占。
  4. 资源抢占 即:锁的抢占。
  5. 有锁的抢占即有锁的释放。
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("============");
		
	}


}

你可能感兴趣的:(java,多线程)