zoukankan      html  css  js  c++  java
  • 并发时候的测试程序

    package concurrency;
    
    import java.util.concurrent.atomic.AtomicReference;
    
    public class TestConcurrency {
    
        private static volatile Integer         num1 = 0;
        private static Integer         num2 = 0;
        private static AtomicReference<Integer> ar   = new AtomicReference<Integer>(num1);
    
        public static void dfasd111() throws InterruptedException {
            for (int i = 0; i < 1000; i++) {
                new Thread(new Runnable() {
    
                    public void run() {
                        for (int i = 0; i < 10000; i++)
                            while (true) {
                                Integer temp = ar.get();
                                if (ar.compareAndSet(temp, temp + 1)) break;
                            }
                    }
                }).start();
            }
            Thread.sleep(10000);
            System.out.println(ar.get()); // 10000000
        }
    
        public static void dfasd1112() throws InterruptedException {
            for (int i = 0; i < 1000; i++) {
                new Thread(new Runnable() {
    
                    public void run() {
                        for (int i = 0; i < 10000; i++) {
                            num1 = num1++;
                        }
                    }
                }).start();
            }
            Thread.sleep(10000);
            System.out.println(num1); // something like 238981
        }
    
        public static void funnum2() throws InterruptedException {
            for (int i = 0; i < 1000; i++) {
                new Thread(new Runnable() {
    
                    public void run() {
                        for (int i = 0; i < 10000; i++) {
                            num2 = num2++;
                        }
                    }
                }).start();
            }
            Thread.sleep(10000);
            System.out.println(num2); // something like 238981
        }
        
        public static void main(String[] args) {
    
            try {
               // dfasd111();
                //dfasd1112();
                funnum2();
            } catch (InterruptedException e) {
                
                // TODO Auto-generated catch block e.printStackTrace();
                
            }
    
        }
    
    }
  • 相关阅读:
    小米范工具系列之一:小米范 web查找器
    不同格式的ip 统一转成ip列表
    Educational Codeforces Round 32
    离散化方式
    线段树合并与分裂
    HDU1074
    容斥原理
    模板
    HDU1024 Max Sum Plus Plus
    CSA Round #56
  • 原文地址:https://www.cnblogs.com/huhuuu/p/6204044.html
Copyright © 2011-2022 走看看