
0703【JUC】
JUC组件基本使用
努力的阳光蓝孩
学习一时爽,一直学习一直爽
展开
-
【JUC】05- ConcurrentHashMap
一、介绍 1、Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。 2、 ConcurrentHashMap 同步容器类是Java 5 增加的一个线程安全的哈希表。对 与多线程的操作,介于 HashMap 与 Hashtable 之间。内部采用“锁分段” 机制替代 Hashtable 的独占锁。进而提高性能。 3、 java.util.concurrent包还提供了设计用于多线程上下文中的 Collection 实现: ConcurrentHa原创 2020-06-22 23:36:07 · 131 阅读 · 0 评论 -
【JUC】04-CountDownLatch 闭锁
一、介绍 1、Java 5.0 在 java.util.concurrent 包中提供了多种并发容器类来改进同步容器 的性能。 2、 CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作 之前,它允许一个或多个线程一直等待。 3、 闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活动直到其他活动都完成才继续执行: 确保某个计算在其需要的所有资源都被初始化之后才继续执行; 确保某个服务在其依赖的所有其他服务都已经启动之后才启动; 等待直到某个操作所原创 2020-06-22 23:32:18 · 148 阅读 · 0 评论 -
【JUC】03-原子变量
一、介绍 1、类的小工具包,支持在单个变量上解除锁的线程安全编程。此包中的类可 将 volatile 值、字段和数组元素的概念扩展到那些也提供原子条件更新操作的类。 import java.util.concurrent.atomic 2、类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对 相应类型单个变量的访问和更新。每个类也为该类型提供适当的实用工具方法。 3、AtomicIntegerArray、AtomicLon原创 2020-06-22 23:26:38 · 104 阅读 · 0 评论 -
【JUC】02 CAS 算法
一、介绍 1、CAS (Compare-And-Swap) 是一种硬件对并发的支持,针对多处理器 操作而设计的处理器中的一种特殊指令,用于管理对共享数据的并 发访问。 2、CAS 是一种无锁的非阻塞算法的实现。 3、CAS 包含了 3 个操作数 需要读写的内存值 V 进行比较的值 A 写入的新值 B 当且仅当 V 的值等于 A 时,CAS 通过原子方式用新值 B 来更新 V 的 值,否则不会执行任何操作 二、代码模拟 package com.example.juc; impor原创 2020-06-22 23:20:49 · 144 阅读 · 0 评论 -
【JUC】 01-volatile 关键字 内存可见性
一、内存可见性 1、内存可见性(Memory Visibility) 指当某个线程正在使用对象状态 而另一个线程在同时修改该状态,需要确保当一个线程修改了对象 状态后,其他线程能够看到发生的状态变化。 2、可见性错误 指当读操作与写操作在不同的线程中执行时,我们无 法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚 至是根本不可能的事情。 3、解决方法 通过同步加锁来保证对象被安全地修改。但是影响性能。 使用一种轻量级的 volatile 变量,但是不具备"互斥性"、不能保证变量原创 2020-06-22 08:38:19 · 176 阅读 · 0 评论