zoukankan      html  css  js  c++  java
  • 银行窗口取号系统,共享数据的线程安全性

    对共享数据的访问和修改要在同步代码块里

    同步代码块的代码是顺序执行的,所以能够保证共享数据的安全性

    public class Demo {
    
        public static void main(String[] args) {
    
            Runnable runnable = new WindowRunnable();
            new Thread(runnable, "窗口1").start();
            new Thread(runnable, "窗口2").start();
            new Thread(runnable, "窗口3").start();
    
        }
    
        static class WindowRunnable implements Runnable {
            final Object monitor = new Object();
            
            int index = 0; // index是共享数据,对共享数据的访问和修改要在同步代码块里
            static final int MAX = 50;
    
            @Override
            public void run() {
                while (true) {
                    synchronized (monitor) {
                        if (index < MAX) {
                            printMsg();
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
    
            public void printMsg() {
                System.out.println(Thread.currentThread().getName() + ": " + (++index));
            }
        }
    }
  • 相关阅读:
    让所有IE支持HTML5的解决方案
    分享按钮源码
    jQuery引用
    字体 ttf 下载
    重写 gallery 防止滚过头
    view 隐藏 显示
    android 数据存储几个方式
    TextView 内容居中
    eclipse导入基类方法
    imageview 全屏 拖动
  • 原文地址:https://www.cnblogs.com/moris5013/p/10695055.html
Copyright © 2011-2022 走看看