zoukankan      html  css  js  c++  java
  • 多线程循环打印ABC

    题目

    据说是阿里的题目,多个线程同时启动,循环打印ABC

    解法

    看了很多解法有使用锁的,同步关键字的,信号量的,自己用volatile关键字写了一个不知道对不对

        private static volatile int a = 1 ;
    
        public static void main(String[] args) {
            new Thread(()->{
                while (true){
                    if(a == 1){
                        System.out.print("a");
                        a = 2;
                    }
                }
            }).start();
            new Thread(()->{
                while (true){
                    if(a == 2){
                        System.out.print("b");
                        a = 3;
                    }
                }
            }).start();
            new Thread(()->{
                while (true){
                    if(a == 3){
                        System.out.println("c");
                        a =1 ;
                    }
                }
            }).start();
        }
    

    结果

    注意

    volatile只能保证可见性和有序性,并不能保证原子性,如i++

  • 相关阅读:
    稀疏数组
    队列
    链表

    递归
    排序
    查找
    postman设置环境变量
    postman获取全局
    iframe页面刷新问题
  • 原文地址:https://www.cnblogs.com/ingxx/p/13985895.html
Copyright © 2011-2022 走看看