zoukankan      html  css  js  c++  java
  • 多线程8---volatile2---多线程间变量的可见性不具备原子性---AtomicInteger

    1.

     1 public class VolatileNoAtomic extends Thread {
     2     private static volatile int count; //volatile具有线程间的变量的可见性不具备原子性
     3     
     4     public void run(){
     5         addCount();
     6     }
     7     
     8     private  static void addCount() {
     9         for(int i = 0; i< 1000; i++){
    10             count++;
    11         }
    12         //System.out.println(count.get());
    13         System.out.println(count);
    14     }
    15 
    16     public static void main(String[] args) {
    17         VolatileNoAtomic[] atomics = new VolatileNoAtomic[10];
    18         for(int i = 0; i<10; i++){
    19             atomics[i] = new VolatileNoAtomic(); //创建10个线程
    20             atomics[i].start(); //启动10个线程
    21         }
    22     }
    23     /*
    24      *  1000
    25         2000
    26         3047
    27         4019
    28         4745
    29         5745
    30         6745
    31         7745
    32         8745
    33         9745
    34      */
    35 }
    View Code

    2.

     1 public class VolatileNoAtomic extends Thread {
     2     //  AtomicInteger 原子性
     3     private static AtomicInteger count = new AtomicInteger(0);
     4     public void run(){
     5         addCount();
     6     }
     7     
     8     private  static void addCount() {
     9         for(int i = 0; i< 1000; i++){
    10             count.incrementAndGet();
    11         }
    12         System.out.println(count.get());
    13     }
    14 
    15     public static void main(String[] args) {
    16         VolatileNoAtomic[] atomics = new VolatileNoAtomic[10];
    17         for(int i = 0; i<10; i++){
    18             atomics[i] = new VolatileNoAtomic(); //创建10个线程
    19             atomics[i].start(); //启动10个线程
    20         }
    21     }
    22     /*
    23      *  1000
    24         2000
    25         3611
    26         4796
    27         5543
    28         6495
    29         7699
    30         8000
    31         9751
    32         10000
    33      */
    34 }
    View Code
  • 相关阅读:
    ElasticSearch原理
    redis master配置了密码进行主从同步
    redis sentinel 高可用(HA)方案部署,及python应用示例
    Linux Redis集群搭建与集群客户端实现
    字符串倒序
    单链表反转
    【python】面试常考数据结构算法
    面试中的排序算法总结
    Memcached 真的过时了吗?
    Activity生命周期
  • 原文地址:https://www.cnblogs.com/bravolove/p/7944553.html
Copyright © 2011-2022 走看看