Java:原子操作类AtomicInteger代码示例

简介: Java:原子操作类AtomicInteger代码示例
package com.demo.atomic;
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicDemo {
    private static int count = 0;
    private static int synchronizedCount = 0;
    private static AtomicInteger atomicCount = new AtomicInteger();
    public static synchronized void addCount() {
        synchronizedCount++;
    }
    public static void main(String[] args) {
        // 创建5个线程
        Thread[] threads = new Thread[5];
        for (int i = 0; i < threads.length; i++) {
            threads[i] = new Thread(() -> {
                for (int j = 0; j < 10; j++) {
                    // 修改值
                    count++;
                    atomicCount.getAndIncrement();
                    addCount();
                    // 延时
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
            threads[i].start();
            System.out.println("start" + i);
        }
        // 等待所有线程执行完毕继续
        for (int i = 0; i < threads.length; i++) {
            try {
                System.out.println("join" + i);
                threads[i].join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("count:" + count);
        System.out.println("atomicCount:" + atomicCount.get());
        System.out.println("synchronizedCount:" + synchronizedCount);
        /**
         * count:40
         * atomicCount:50
         * synchronizedCount:50
         */
    }
}

参考

原子操作类AtomicInteger详解

相关文章
|
8月前
|
安全 算法 Java
了解 Java 中的 AtomicInteger 类
了解 Java 中的 AtomicInteger 类
144 1
|
3月前
|
Java
Java的原子变量类
Java的原子变量类
22 0
|
8月前
|
安全 Java 开发者
【JAVA】哪些集合类是线程安全的
【JAVA】哪些集合类是线程安全的
|
6月前
|
安全 算法 Java
实现Java中的线程安全集合类
实现Java中的线程安全集合类
|
7月前
|
Java
java使用匿名内部类实现多线程
java使用匿名内部类实现多线程
|
8月前
|
安全 Java
Java一分钟之-并发编程:原子类(AtomicInteger, AtomicReference)
【5月更文挑战第18天】Java并发编程中的原子类如`AtomicInteger`和`AtomicReference`提供无锁原子操作,适用于高性能并发场景。`AtomicInteger`支持原子整数操作,而`AtomicReference`允许原子更新对象引用。常见问题包括误解原子性、过度依赖原子类以及忽略对象内部状态的并发控制。要避免这些问题,需明确原子操作边界,合理选择同步策略,并精确控制原子更新。示例代码展示了如何使用这两个类。正确理解和使用原子类是构建高效并发程序的关键。
110 1
|
7月前
|
存储 Java 索引
Java中的13个原子操作类
Java中的13个原子操作类
65 0
|
8月前
|
Java
Java中的i++是原子操作吗?
Java中的i++是原子操作吗?
|
8月前
|
存储 监控 Java
Java 中的 ThreadLocal:概念、应用及代码示例
Java 中的 ThreadLocal:概念、应用及代码示例
157 0
|
人工智能 移动开发 Java
【Java基础】线程同步类 CountDownLatch
CountDownLatch是JDK提供的一个同步工具,它可以让一个或多个线程等待,一直等到其他线程中执行完成一组操作。 CountDownLatch 基于AQS构建同步器: AQS - AbstractQueuedSynchronizer ,即抽象的队列同步器,是一种用来**构建锁和同步器**的框架。

热门文章

最新文章