传统线程同步通信技术

要求:
1、先主线程循环100次,
2、接着子线程循环10,
3、再主线程循环100次,
4、再子线程循环10,
如此反复50次

步骤:
1、创建一个业务类:
class Bussieser {
private boolean flag = true;
public synchronized void sub() {
if(!flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 1; i <= 10; i++) {
System.out.println("sub:" + i);
}
}
flag = false;
this.notify();
}

public synchronized void main() {
if(flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int i = 1; i <= 100; i++) {
System.out.println("main:" + i);
}
flag = true;
this.notify();
}
}
2、业务逻辑方法
final Bussieser buss = new Bussieser();
new Thread(new Runnable() {

@Override
public void run() {
for (int i = 0; i <= 50; i++) {
buss.sub();
}
}
}).start();
for (int i = 0; i <= 50; i++) {
buss.main();
}

你可能感兴趣的:(java,java,thread,线程,互斥,通信)