美文网首页
测试四种情况 静态变量 加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

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

  • JAVA实例初始化顺序

    存在继承的情况下,初始化顺序为: 父类(静态变量、静态语句块)子类(静态变量、静态语句块)父类(实例变量、普通语句...

  • java初始化过程

    初始化顺序:父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父类的非静态变量(...

  • java static 关键字的理解

    1.类的加载顺序:父类的静态变量--》父类的静态方法--》子类的静态变量--》子类的静态方法---》父类的成员变量...

  • 初始化执行顺序

    Java初始化的顺序如下: 父类的静态变量 父类的静态代码块 子类的静态变量 子类的静态代码块 父类的非静态变量...

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • java相关零碎知识

    java初始化,加载顺序: 父类的静态成员变量,父类静态代码块,子类的静态成员变量,子类的静态代码块,父类非静态成...

  • Java知识点总结

    Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...

  • 静态内部类实现懒加载单例模式

    代码 为什么 Java程序的初始化顺序依次是:父类静态变量-->父类静态代码块-->子类静态变量-->子类静态代码...

  • 继承的实例变量不能被覆盖

    1.父类的变量(实例变量和静态变量)能被子类的同名变量隐藏 2.父类的静态方法被子类的同名静态方法隐藏 3.父类的...

网友评论

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

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