zoukankan      html  css  js  c++  java
  • Java8-Synchronized-No.01

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.stream.IntStream;
    
    public class Synchronized1 {
    
        private static final int NUM_INCREMENTS = 10000;
    
        private static int count = 0;
    
        public static void main(String[] args) {
            testSyncIncrement();
            testNonSyncIncrement();
        }
    
        private static void testSyncIncrement() {
            count = 0;
    
            ExecutorService executor = Executors.newFixedThreadPool(2);
    
            IntStream.range(0, NUM_INCREMENTS)
                    .forEach(i -> executor.submit(Synchronized1::incrementSync));
    
            ConcurrentUtils.stop(executor);
    
            System.out.println("   Sync: " + count);
        }
    
        private static void testNonSyncIncrement() {
            count = 0;
    
            ExecutorService executor = Executors.newFixedThreadPool(2);
    
            IntStream.range(0, NUM_INCREMENTS)
                    .forEach(i -> executor.submit(Synchronized1::increment));
    
            ConcurrentUtils.stop(executor);
    
            System.out.println("NonSync: " + count);
        }
    
        private static synchronized void incrementSync() {
            count = count + 1;
        }
    
        private static void increment() {
            count = count + 1;
        }
    
    }
    
  • 相关阅读:
    快速排序的分析与优化
    矩阵原地转置
    变位词问题
    一维向量旋转算法
    位图排序
    Linux网络编程:UDP实现可靠的文件传输
    Linux网络编程:UDP Socket编程范例
    es6+最佳入门实践(6)
    es6+最佳入门实践(5)
    es6+最佳入门实践(4)
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210904.html
Copyright © 2011-2022 走看看