处理多线程同步问题
public class BusinessFor {private boolean bShouldSub = true;public synchronized void sub(int j) {//如果我不能执行,我将被设置为等待while (!bShouldSub) { try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}}for (int i = 1; i <= 10; i++) {System.out.println("sub: " + i + ",loop: " + j);}bShouldSub = false;this.notify();//唤醒}public synchronized void zhu(int j) {while (bShouldSub) {try {this.wait();} catch (InterruptedException e) {e.printStackTrace();}}for (int i = 1; i <= 100; i++) {System.out.println("main: " + i + ",loop: " + j);}bShouldSub = true;this.notify();//唤醒}}
?? 这是一种多线程设计的一种思想,将线程同步的信息放在可syn同步的类中 。
?? 以下是启动线程测试
public class ThreadTongBu {public static void main(String[] args) {final BusinessFor businessFor = new BusinessFor();new Thread(new Runnable() {public void run() {for(int i=1;i<=50;i++){businessFor.sub(i);}}}).start();for(int i=1;i<=50;i++){businessFor.zhu(i);}}}
?
?
?