美文网首页
测试四种情况 静态变量 加volatile的静态变量 原子类 s

测试四种情况 静态变量 加volatile的静态变量 原子类 s

作者: 随心者随心行 | 来源:发表于2019-03-06 15:38 被阅读0次

    如何在这个类的基础上加线程池,阻塞队列,生产者 、消费者模型

    Semaphore信号量

    public class IncrementTestDemo {
    
        public static int count = 0;
        public static Counter counter = new Counter();
        public static AtomicInteger atomicInteger = new AtomicInteger(0);
        volatile public static int countVolatile = 0;
    
        public static void main(String[] args) {
            for (int i = 0; i < 10; i++) {
                new Thread() {
                    public void run() {
                        //开10个线程
                        for (int j = 0; j < 1000; j++) {
                            //累加
                            count++;
                            counter.increment();
                            atomicInteger.getAndIncrement();
                            countVolatile++;
                        }
                    }
                }.start();
            }
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("static count: " + count);
            System.out.println("Counter: " + counter.getValue());
            System.out.println("AtomicInteger: " + atomicInteger.intValue());
            System.out.println("countVolatile: " + countVolatile);
        }
    
    }
    class Counter {
        private int value;
    
        public synchronized int getValue() {
            return value;
        }
    
        public synchronized int increment() {
            return ++value;
        }
    
        public synchronized int decrement() {
            return --value;
        }
    }
    

    相关文章

      网友评论

          本文标题:测试四种情况 静态变量 加volatile的静态变量 原子类 s

          本文链接:https://www.haomeiwen.com/subject/prxxpqtx.html