- /**
- * sub运行10次,然后main运行100次,这样交替循环50次
- * @author Administrator
- *
- */
- public class TraditionalThreadCommunication {
- /**
- * @param args
- */
- 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();
- new Thread(new Runnable() {
- @Override
- public void run() {
- for(int i=1;i<=50;i++){
- business.main(i);
- }
- }
- }).start();
- }
- }
- class Business {
- private boolean bShouldSub = true;
- public synchronized void sub(int i){
- while(!bShouldSub){
- try {
- this.wait();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- for(int j=1;j<=10;j++){
- System.out.println("sub thread sequence of " + j + ",loop of " + i);
- }
- bShouldSub = false;
- this.notify();
- }
- public synchronized void main(int i){
- while(bShouldSub){
- try {
- this.wait();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- for(int j=1;j<=100;j++){
- System.out.println("main thread sequence of " + j + ",loop of " + i);
- }
- bShouldSub = true;
- this.notify();
- }
- }
一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)
最新推荐文章于 2020-11-19 16:27:47 发布