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
  • 相关阅读:
    vs与linux的交叉编译环境搭建
    layui框架部分功能介绍
    谷歌添加百度翻译提示Google已将百度翻译标记为恶意程序并阻止安装,怎么办
    七,JOBC数据库编程
    mysql数据库
    六,IO系统
    五,图形界面编程
    四,集合框架
    三,反射类
    二,常用类
  • 原文地址:https://www.cnblogs.com/bravolove/p/7944553.html
Copyright © 2011-2022 走看看