zoukankan      html  css  js  c++  java
  • No4.传统线程同步通信技术

    1.面试题

       子线程循环10次,接着住线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100次,如此循环50次。

     
    public class ThreadTest {
    
        public static void main(String[] args) {
            new ThreadTest().init();
    
        }
    
        public void init() {
            final Business business = new Business();
            new Thread(new Runnable() {
    
                public void run() {
                    for (int i = 0; i < 50; i++) {
                        business.SubThread(i);
                    }
                }
    
            }
    
            ).start();
    
            for (int i = 0; i < 50; i++) {
                business.MainThread(i);
            }
        }
    
        private class Business {
            boolean bShouldSub = true;// 这里相当于定义了控制该谁执行的一个信号灯
    
            public synchronized void MainThread(int i) {
                if (bShouldSub)
                    try {
                        this.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                for (int j = 0; j < 100; j++) {
                    System.out.println(Thread.currentThread().getName() + ":i=" + i
                            + ",j=" + j);
                }
                bShouldSub = true;
                this.notify();
    
            }
    
            public synchronized void SubThread(int i) {
                if (!bShouldSub)
                    try {
                        this.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                for (int j = 0; j < 10; j++) {
                    System.out.println(Thread.currentThread().getName() + ":i=" + i
                            + ",j=" + j);
                }
                bShouldSub = false;
                this.notify();
            }
    
        }
    
    }
  • 相关阅读:
    Python实现定时监测屏幕
    近期仿真遇到的问题汇总
    Python爬虫
    好用的浏览器插件
    视频剪辑软件
    MATLAB
    常用电脑辅助快捷键
    绘制PCB软件
    ANSYS19.0安装教程and遇到的各种问题以及目前知道的解决方式
    pyton脚本快速运行
  • 原文地址:https://www.cnblogs.com/royi123/p/3082925.html
Copyright © 2011-2022 走看看