Java8-Synchronized-No.01

来源:互联网 发布:聚合数据 公司苏州 编辑:程序博客网 时间:2024/05/30 20:07
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;    }}