Java8-Atomic
来源:互联网 发布:智能终端开发是编程吗 编辑:程序博客网 时间:2024/06/08 13:29
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.IntStream;public class Atomic1 { private static final int NUM_INCREMENTS = 1000; private static AtomicInteger atomicInt = new AtomicInteger(0); public static void main(String[] args) { testIncrement(); testAccumulate(); testUpdate(); } private static void testUpdate() { atomicInt.set(0); ExecutorService executor = Executors.newFixedThreadPool(2); IntStream.range(0, NUM_INCREMENTS) .forEach(i -> { Runnable task = () -> atomicInt.updateAndGet(n -> n + 2); executor.submit(task); }); ConcurrentUtils.stop(executor); System.out.format("Update: %d\n", atomicInt.get()); } private static void testAccumulate() { atomicInt.set(0); ExecutorService executor = Executors.newFixedThreadPool(2); IntStream.range(0, NUM_INCREMENTS) .forEach(i -> { Runnable task = () -> atomicInt.accumulateAndGet(i, (n, m) -> n + m); executor.submit(task); }); ConcurrentUtils.stop(executor); System.out.format("Accumulate: %d\n", atomicInt.get()); } private static void testIncrement() { atomicInt.set(0); ExecutorService executor = Executors.newFixedThreadPool(2); IntStream.range(0, NUM_INCREMENTS) .forEach(i -> executor.submit(atomicInt::incrementAndGet)); ConcurrentUtils.stop(executor); System.out.format("Increment: Expected=%d; Is=%d\n", NUM_INCREMENTS, atomicInt.get()); }}
阅读全文
1 0
- Java8-Atomic
- Atomic
- atomic
- Atomic
- Java8
- java8
- Java8
- java8
- java8
- java8
- java8
- Java8
- Java8
- Java8
- java8
- java8
- JAVA8
- JAVA8
- 总结之linux下网络编程
- Java8-ConcurrentHashMap
- R ubuntu16
- web各组件日志操作
- Activity启动那点事
- Java8-Atomic
- 数组和字符串
- HTML页面下拉框选项
- 指针P
- 万物皆有AI|IEIC·IT耳朵智能创新大会即将召开
- 函数
- 听见丨搭载Bixby,三星将于明年上半年推出智能音箱 比特币疯涨的幕后推手是日本人
- html base64 img 图片显示
- 购物车 ( Retrofit+RxJava+MVP)