【Java并发编程的艺术学习】第七,八章摘要

发布时间:2024年01月23日

原子更新基本类型类

1.原子操作类:多线程下的操作是安全的,不需要自己加锁

2.在原子类中不能用+ - * / ,而是采用这些方法

AtomicBoolean:原子更新布尔型

AtomicInteger:原子更新整形

AtomicLong:原子更新长整型

AtomicIntegerArray:原子更新整型数组里的元素

AtomicLongArray:原子更新长整型数组里的元素

AtomicReferenceArray:原子更新引用类型数组里的元素

AtomicReference:原子更新引用类型

AtomicReferenceFrildUpdater:原子更新引用类型里的字段

AtomicMarkableRefrence:原子更新带有标记位的引用类型

AtomicIntegerFieldUpdater:原子更新整型的字段的更新器。

AtomicLongFieldUpdater:原子更新长整型字段的更新器。

AtomicStampedReference:原子更新带有版本号的引用类型。该类将整数值与引用关联起来,可用于原子的更新数据和数据的版本号,可以解决使用CAS进行原子更新时可能出现的ABA问题。

8 Java中的并发工具类

1.Semaphore的流量控制运用场景

public class SemaphoreTest {
    private static final int THREAD_COUNT = 30;
    private static ExecutorServicethreadPool = Executors.newFixedThreadPool(THREAD_COUNT);
    private static Semaphore s = new Semaphore(10);
    public static void main(String[] args) {
        for (inti = 0; i< THREAD_COUNT; i++) {
            threadPool.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    s.acquire();
                    System.out.println("save data");
                    s.release();
                } catch (InterruptedException e) {
                    }
            }
          });
    }
    threadPool.shutdown();
    }
}

文章来源:https://blog.csdn.net/weixin_62647396/article/details/135773031
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。