子线程循环10次,接着主线程循环100,接着又回到子线程循环10次.....如此循环50次

<span style="font-size:18px;">package src.com.cjlthread.java;
/*
 * 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次.....如此循环50次
 */
public class TraditionalThreadCommunication {
	public static void main(String[] args) {
		final Business business=new Business();
		new Thread(new Runnable() {
			@Override
			public void run() {
				for (int i = 1; i <= 50; i++) {
					business.sub(i);
				}
			}
		}).start();
		for (int i = 1; i <= 50; i++) {
			business.main(i);
		}
	}
}
class Business{
	private boolean bShouldSub=true;
	public synchronized void sub(int i){
		if (!bShouldSub) {
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		for (int j = 1; j <= 10; j++) {
			System.out.println("sub Thread sequece of"+j+",loop of"+i);
		}
		bShouldSub=false;
		this.notify();
	}
	public synchronized void main(int i){
		if (bShouldSub) {
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		for (int j = 1; j <= 100; j++) {
			System.out.println("sub Thread sequece of"+j+",loop of"+i);
		}
		bShouldSub=true;
		this.notify();
	}
}</span>

posted @ 2015-05-10 17:17  Doctor.chen  阅读(404)  评论(0编辑  收藏  举报