• 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次(亲测可用)


    package duoxiancheng;
    
    public class MyThreadTest2 {
    
        public static void main(String[] args) throws InterruptedException{
            final MyService ms = new MyService();
            new Thread(new Runnable() {
                
                @Override
                public void run() {
                    for(int i = 1; i <=50;i++){
                        ms.sub(i);
                    }
                    
                }
            }).start();
            
            //让子线程先跑
            Thread.sleep(1000);
            
            //main方法本身即为主线程
            for(int i = 1;i <= 50;i++){
                ms.main(i);
            }
    
        }
        
        static class MyService{
            
            boolean beShouldSub = true;//是否执行子线程标志位
            //子线程循环10次
            public synchronized void sub(int i) {
                if(!beShouldSub){
                    try {
                        this.wait();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                for(int j =1;j<=10;j++){
                    System.out.println("sub thread sequeue of " + j + "loop of " + i);
                }
                beShouldSub = false;//子线程执行完毕,子线程标志位设为false
                this.notify();//唤醒主线程
                
            }
            
            //主线程循环100次
            public synchronized void main(int i) {
                if(beShouldSub){
                    try {
                        this.wait();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                for(int j = 1; j <= 100; j++){
                    System.out.println("Main thread sequeue of " + j + "loop of " + i);
                }
                
                beShouldSub = true;//主线程执行完毕,子线程标志位设为true
                this.notify();//唤醒子线程
            }
            
        }
    
    }
  • 相关阅读:
    linux下nginx+php+mysql环境搭建
    Linux下配置安装PHP环境
    什么是Apache APR
    全端之Jquery--操作属性
    全端之jQuery基本语法
    全端之Javascript(操作DOM对象二)
    全端之Javascript(DOM对象三)
    全端之Javascript(DOM对象一)
    全端之Javascript对象
    全端开发——css(操作属性补充)
  • 原文地址:https://www.cnblogs.com/lingluo2017/p/7286189.html
Copyright © 2020-2023  润新知