第一次写博客,希望进来看到的不要吐槽。哈哈。。。从现在开始记录自己的一点点学习!
/**
* 子线程循环10次,主线程循环50 次,接着又回到子线程循环10次,主线程循环50次。如此往复100次;
* @author xqh
* @date :2014-2-22 下午10:54:25
*/
package com.aron;
public class TraditionThreadCommunication {
public static void main(String[] args) {
final Bussiness b = new Bussiness();
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
b.sub(i);
}
}
}).start();
for (int i = 1; i <= 100; i++) {
b.main(i);
}
}
}
class Bussiness{
private boolean flag = true;
public synchronized void sub(int i) {
for (int j = 1; j <= 10; j++) {
while (!flag) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("sub thread sequence of " + j
+ " loop of " + i);
}
flag = false;
this.notify();
}
public synchronized void main(int i) {
while (flag) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int j = 1; j <= 50; j++) {
System.out.println("main thread sequence of " + j
+ " loop of " + i);
}
flag = true;this.notify();
}
}