E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
J.U.C
Java原子操作类,你知道多少?
实际上,在
J.U.C
下的atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。
李红红
·
2019-05-28 15:09
Java
Java原子操作类,你知道多少?
实际上,在
J.U.C
下的atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。
李红欧巴
·
2019-05-28 15:03
【
J.U.C
】lockInterruptibly与lock
文章首发于:clawhub.club在看LinkedBlockingQueue源码时,发现一点疑惑:poll(longtimeout,TimeUnitunit)方法中通过takeLock.lockInterruptibly()获取锁,其重载方法poll()中,通过takeLock.lock()获取锁。通过查看ReentrantLock源码中lockInterruptibly()与lock()方法,
clawhub
·
2019-05-26 06:53
【
J.U.C
】LockSupport
文章首发于:clawhub.clubLockSupport是用于创建锁和其他同步类的阻塞原语,通过调用Unsafe函数中的接口实现阻塞和解除阻塞的。pack方法解释park(Object)挂起当前线程parkNanos(Object,long)指定了一个挂起时间(相对于当前的时间),时间到后自动被唤醒;例如1000纳秒后自动唤醒parkUntil(Object,long)指定一个挂起时间(绝对时间
clawhub
·
2019-05-25 08:49
【
J.U.C
】LockSupport源码翻译
文章首发于:clawhub.clubJDKLockSuppoprt源码翻译importsun.misc.Unsafe;/***Basicthreadblockingprimitivesforcreatinglocksandother*synchronizationclasses.*用于创建锁和其他同步类的基本线程阻塞原语。*Thisclassassociates,witheachthreadtha
clawhub
·
2019-05-23 11:20
Java并发——线程池参数与使用
corePoolSizemaximumPoolSizekeepAliveTimeunitworkQueueThreadFactoryhandler任务提交到线程池的过程通俗的理解Java提供的线程池默认配置Java线程池核心类java中线程池的核心类是
j.u.c
无智亦无得
·
2019-05-23 11:35
Java
【
J.U.C
】LongAdder与AtomicLong
前一阵子看ConcurrentHashMap的源码,其中计数部分提及到LongAdder,之后看了一下LongAdder,发现他们实现的思路是一样的,都是将单节点的并发分散到多个节点。LongAdder的使用场景也就适用于高并发的情形。比如QPS的计算,在多个线程频发更新QPS的时候,效率会很高。计数选型:单线程那直接用Long最好了,并发不高的情况用AtomicLong,并发高时选LongAdd
clawhub
·
2019-05-23 00:58
浅谈Java并发
J.U.C
之AQS:CLH同步队列
CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node)并将其加入到CLH同步队列,同时会阻塞当前线程,当同步状态释放时,会把首节点唤醒(公平锁),使其再次尝试获取同步状态。在CLH同步队列中,一个节点表示一个线程,它保存着线程的引用(thread)、状态(waitStatus)、前驱节
chenssy
·
2019-05-21 09:47
Java并发——结合CountDownLatch源码、Semaphore源码及ReentrantLock源码来看AQS原理
前言:如果说
J.U.C
包下的核心是什么?那我想答案只有一个就是AQS。那么AQS是什么呢?接下来让我们一起揭开AQS的神秘面纱AQS是什么?
方块人
·
2019-05-07 16:00
J.U.C
|condition分析
一、写在前面在前几篇我们聊了AQS、CLH、ReentrantLock、ReentrantReadWriteLock等的原理以及其源码解读,具体参见专栏《非学无以广才》这章我们一起聊聊显示的Condition对象。二、简介在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、wait(longtimeout)、notify()、以及notifyAll等方法
阅历笔记
·
2019-05-06 00:00
锁
java
并发编程
J.U.C
|读-写锁ReentrantReadWriteLock
一、写在前面在上篇我们聊到了可重入锁(排它锁)ReentrantLcok,具体参见《
J.U.C
|可重入锁ReentrantLock》ReentrantLcok属于排它锁,本章我们再来一起聊聊另一个我们工作中出镜率很高的读
阅历笔记
·
2019-04-30 08:24
J.U.C
|读-写锁ReentrantReadWriteLock
一、写在前面在上篇我们聊到了可重入锁(排它锁)ReentrantLcok,具体参见《
J.U.C
|可重入锁ReentrantLock》ReentrantLcok属于排它锁,本章我们再来一起聊聊另一个我们工作中出镜率很高的读
阅历笔记
·
2019-04-30 00:00
java
并发编程
锁
J.U.C
|可重入锁ReentrantLock
一、写在前面前几篇我们具体的聊了AQS原理以及底层源码的实现,具体参见《
J.U.C
|一文搞懂AQS》《
J.U.C
|同步队列(CLH)》《
J.U.C
|AQS独占式源码分析》《
J.U.C
|AQS共享式源码分析
阅历笔记
·
2019-04-26 00:00
java
并发编程
多线程
J.U.C
|AQS共享式源码分析
一、写在前面上篇给大家聊了独占式的源码,具体参见《
J.U.C
|AQS独占式源码分析》这一章我们继续在AQS的源码世界中遨游,解读共享式同步状态的获取和释放。
阅历笔记
·
2019-04-24 11:23
J.U.C
|AQS共享式源码分析
一、写在前面上篇给大家聊了独占式的源码,具体参见《
J.U.C
|AQS独占式源码分析》这一章我们继续在AQS的源码世界中遨游,解读共享式同步状态的获取和释放。
阅历笔记
·
2019-04-24 00:00
java
并发编程
锁
J.U.C
|AQS独占式源码分析
一、写在前面上篇文章通过ReentrantLock的加锁和释放锁过程给大家聊了聊AQS架构以及实现原理,具体参见《带你走进AQS内心世界》。理解了原理,我们在来看看再来一步一步的聊聊其源码是如何实现的。本章给大家聊聊AQS中独占式获取和释放共享状态的流程,主要根据tryAcquire(intarg)-->tryRelease(intarg)来讲。二、什么是独占式AQS的同步队列提供两种模式即独占式
阅历笔记
·
2019-04-23 14:22
J.U.C
|同步队列(CLH)
一、写在前面在上篇我们聊到AQS的原理,具体参见《
J.U.C
|带你走进AQS的内心世界》。这篇我们来给大家聊聊AQS中核心同步队列(CLH)。
阅历笔记
·
2019-04-23 13:12
J.U.C
|AQS独占式源码分析
一、写在前面上篇文章通过ReentrantLock的加锁和释放锁过程给大家聊了聊AQS架构以及实现原理,具体参见《
J.U.C
|AQS的原理》。
阅历笔记
·
2019-04-23 00:00
并发编程
java
J.U.C
|一文搞懂AQS
一、写在前面这篇文章,我们聊一聊Java并发中的核武器,AQS底层实现。不管是工作三四年、还是五六年的在工作或者面试中涉及到并发的是时候总是绕不过AQS这个词。首先,确实还有很多人连AQS是什么都不知道,甚至有的竟不知其为何物。或者有的听说过其名,但怎么拼写的都忘记了。总的来说确实有很多同学对AQS总有一种云里雾里的感觉,在搜索引擎中搜下AQS看个几篇文章,估计对其还是醉醺醺的。所以根据上面的难点
阅历笔记
·
2019-04-22 00:00
java
并发编程
J.U.C
|同步队列(CLH)
一、写在前面在上篇我们聊到AQS的原理,具体参见《
J.U.C
|AQS原理》。这篇我们来给大家聊聊AQS中核心同步队列(CLH)。
阅历笔记
·
2019-04-22 00:00
并发模型
java
J.U.C
|带你走进AQS的内心世界
一、写在前面这篇文章,我们聊一聊Java并发中的核武器,AQS底层实现。不管是工作三四年、还是五六年的在工作或者面试中涉及到并发的是时候总是绕不过AQS这个词。首先,确实还有很多人连AQS是什么都不知道,甚至有的竟不知其为何物。或者有的听说过其名,但怎么拼写的都忘记了。总的来说确实有很多同学对AQS总有一种云里雾里的感觉,在搜索引擎中搜下AQS看个几篇文章,估计对其还是醉醺醺的。所以根据上面的难点
阅历笔记
·
2019-04-17 18:09
J.U.C
|乐观锁为何物
乐观锁的定义在上篇文章《
J.U.C
|一文搞定Java锁体系》中已做介绍,主要有几个特征。乐观主义,认为自己的数据总不会被别人修改。更新时做检查(虽然乐观但不傻)。发现被修改后自旋或者异常。
阅历笔记
·
2019-04-17 11:04
『并发包入坑指北』之阻塞队列
前言较长一段时间以来我都发现不少开发者对jdk中的
J.U.C
(java.util.concurrent)也就是Java并发包的使用甚少,更别谈对它的理解了;但这却也是我们进阶的必备关卡。
crossoverJie
·
2019-04-10 08:00
『并发包入坑指北』之阻塞队列
前言较长一段时间以来我都发现不少开发者对jdk中的
J.U.C
(java.util.concurrent)也就是Java并发包的使用甚少,更别谈对它的理解了;但这却也是我们进阶的必备关卡。
weixin_34247155
·
2019-04-10 00:04
java
数据库
数据结构与算法
『并发包入坑指北』之阻塞队列
前言较长一段时间以来我都发现不少开发者对jdk中的
J.U.C
(java.util.concurrent)也就是Java并发包的使用甚少,更别谈对它的理解了;但这却也是我们进阶的必备关卡。
crossoverJie
·
2019-04-10 00:00
队列
并发
java
Java并发编程系列学习_原子操作类Atomic
实际上,在
J.U.C
下的atomic包提供了一系列的操作简单,性能高效,并能保
徐菜鸟
·
2019-04-09 13:31
Java开发语言
Java并发编程
并发系列(5)之 Future 框架详解
本文将主要讲解
J.U.C
中的Future框架,并分析结合源码分析其内部结构逻辑;一、Future框架概述JDK中的Future框架实际就是Future模式的实现,通常情况下我们会配合线程池使用,但也可以单独使用
三枣
·
2019-04-07 19:00
J.U.C
之AQS CyclicBarrier
CyclicBarrier概述允许多个线程相互等待,直到到达某个公共屏障点(CommonBarrierPoint),只有当每个线程都准备就绪后,才能各自往下执行后面的操作;其和CountDownLatch相似的地方是都是通过计数器实现;当某个现场调用await()后,该线程就进入等待状态,而且计数器执行加1操作,当计数器达到了设置的初始值,调用await()方法进行等待的线程都会被唤醒,继续awa
乌鲁木齐001号程序员
·
2019-04-03 22:44
AQS(AbstractQueuedSynchronizer)之——独占锁的实现
简介AQS(AbstractQueuedSynchronizer)即队列同步器,它是
J.U.C
包下构建同步(锁)操作基础组件。
zy丶秋水
·
2019-03-14 17:17
java
多线程核心知识:原子性
解决:a、
J.U.C
包内的原子操作封装类CAS机制Comparea
sinat_28995003
·
2019-03-03 23:44
多线程+并发
并发编程-19AQS同步组件之重入锁ReentrantLock、 读写锁ReentrantReadWriteLock、Condition
文章目录
J.U.C
脑图ReentrantLock概述ReentrantLock常用方法synchronized和ReentrantLock的比较ReentrantLock示例读写锁ReentrantReadWriteLock
小小工匠
·
2019-02-27 23:51
【Java并发编程】
Java并发学习(四)-
J.U.C
之工具类
1、总览CountDownLatch允许一个或多个线程等待某些操作完成SemaphoreJava版本的信号量实现CyclicBarrier一种辅助性的同步结构,允许多个线程等待到达某个屏障Exchanger在线程间交换数据的一种手段2、CountDownLatch当一个或多个线程需要等待其他线程完成操作时,就可以使用CountDownLatch了,当然,最简单的你也可以使用join方法2.1、jo
J_Howie
·
2019-01-31 14:45
Java并发编程和高并发
Java并发学习(四)-
J.U.C
之工具类
1、总览CountDownLatch允许一个或多个线程等待某些操作完成SemaphoreJava版本的信号量实现CyclicBarrier一种辅助性的同步结构,允许多个线程等待到达某个屏障Exchanger在线程间交换数据的一种手段2、CountDownLatch当一个或多个线程需要等待其他线程完成操作时,就可以使用CountDownLatch了,当然,最简单的你也可以使用join方法2.1、jo
J_Howie
·
2019-01-31 14:45
Java并发编程和高并发
Java并发学习(三)-
J.U.C
之Atomic包
线程安全性定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式,或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的,线程安全类一般具有这几个特性:原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时的被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令
J_Howie
·
2019-01-23 14:33
Java并发编程和高并发
Java并发学习(三)-
J.U.C
之Atomic包
线程安全性定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式,或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的,线程安全类一般具有这几个特性:原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作可见性:一个线程对主内存的修改可以及时的被其他线程观察到有序性:一个线程观察其他线程中的指令执行顺序,由于指令
J_Howie
·
2019-01-23 14:33
Java并发编程和高并发
java并发编程与高并发解决方案
知识点线程安全,线程封闭,线程调度,同步容器,并发容器,AQS,
J.U.C
,等等高并发解决思路与手段扩容:水平扩容、垂直扩容缓存:Redis、Memcache、GuavaCache等队列:Kafka、RabitMQ
GavinZhera
·
2019-01-17 18:04
后端
总结
多线程:并发实现方法之
J.U.C
java.util.concurrent(
J.U.C
)大大提高了并发性能。AQS被认为是
J.U.C
的核心。什么是AQS? AQS是AbstractQueuedSynchronizer的简称。
五山口老法师
·
2019-01-13 21:15
多线程
多线程:并发实现方法之
J.U.C
java.util.concurrent(
J.U.C
)大大提高了并发性能。AQS被认为是
J.U.C
的核心。什么是AQS? AQS是AbstractQueuedSynchronizer的简称。
五山口老法师
·
2019-01-13 21:15
多线程
Java多线程(六):
J.U.C
之 AQS
Java的内置锁一直都是备受争议的,在JDK1.6之前,synchronized这个重量级锁其性能一直都是较为低下,虽然在1.6后,进行大量的锁优化策略,但是与Lock相比synchronized还是存在一些缺陷的:虽然synchronized提供了便捷性的隐式获取锁释放锁机制(基于JVM机制),但是它却缺少了获取锁与释放锁的可操作性,可中断、超时获取锁,且它为独占式在高并发场景下性能大打折扣。在
晓寒风骤
·
2019-01-11 10:16
并发
【十六】Java多线程
J.U.C
之atomic包(原子性、CAS、UnSafe)
一、概述原子性提供了互斥访问,同一时刻只会有一个线程对资源进行操作。该包下提供了具有原子性的数据类型。它是通过CAS来实现原子性的。java.util.concurrent.atomic以AtomicInteger的incrementAndGet()方法为例/***Atomicallyincrementsbyonethecurrentvalue.**@returntheupdatedvalue*/
jy02268879
·
2019-01-08 17:18
atomic包
原子性
CAS
UnSafe
Java并发编程
java-线程池(一)
可以对线程进行管理与维护二、线程池的创建线程池的创建可以使用Executors类中的方法创建,可以参考常用的四种线程池的创建,下面来看
J.U.C
包下的ThreadPoolExecutor,此类主要有以下构造方法
南小瓜
·
2018-12-20 19:59
java
线程池
java线程
深入分析AQS实现原理
简单解释一下
J.U.C
,是JDK中提供的并发工具包,java.util.concurrent。
架构师修炼宝典
·
2018-12-14 00:00
thread
aqs
java
并发容器
J.U.C
图片.pngCopyOnWriteArrayList(对应ArrayList)CopyOnWriteArrayList使用了一种叫写时复制的方法,当有新元素添加到CopyOnWriteArrayList时,先从原有的数组中拷贝一份出来,然后在新的数组做写操作,写完之后,再将原来的数组引用指向到新数组。CopyOnWriteArrayList的整个add操作都是在锁的保护下进行的。这样做是为了避免在
磊_5d71
·
2018-11-04 08:34
Java多线程进阶(四四)——
J.U.C
之executors框架:Fork/Join框架(2)实现
本文首发于一世流云的专栏:https://segmentfault.com/blog...一、引言前一章——Fork/Join框架(1)原理,我们从整体上对Fork/Join框架作了介绍。回顾一下,Fork/Join框架的核心实现类是ForkJoinPool线程池,其它核心组件包括:ForkJoinTask(任务)、ForkJoinWorkerThread(工作线程)、WorkQueue(任务队列
Ressmix
·
2018-11-01 00:00
并发
多线程
java
线程池
10
J.U.C
组件拓展
1️⃣J.U.C-FutureTask1概述FutureTask这个组件是JUC里边的但是它不是AQS的子类;创建线程常用的方式有两种一种是继承Thread,一种是实现Runnable接口,这两种方式有一个共同的缺陷就是执行完任务以后无法获取执行结果,从JDK1.5开始就提供了Future和Callable通过他们可以在任务执行完毕以后获取结果;2CallableFutureFutureTask的
十丈_红尘
·
2018-10-27 14:48
JAVA学习笔记(并发编程 - 伍)- 线程安全策略
文章目录四种线程安全策略不可变对象线程封闭线程不安全类与写法线程安全-同步容器集合接口下的同步容器实现类:Collections.synchronizedXXX(list,set,map)方法所创建的同步容器线程安全-并发容器
J.U.C
-无妄-
·
2018-10-27 12:52
java并发编程学习笔记
Java多线程进阶(四三)——
J.U.C
之executors框架:Fork/Join框架(1) 原理
本文首发于一世流云的专栏:https://segmentfault.com/blog...一、引言算法领域有一种基本思想叫做“分治”,所谓“分治”就是将一个难以直接解决的大问题,分割成一些规模较小的子问题,以便各个击破,分而治之。比如:对于一个规模为N的问题,若该问题可以容易地解决,则直接解决;否则将其分解为K个规模较小的子问题,这些子问题互相独立且与原问题性质相同,递归地解这些子问题,然后将各子
Ressmix
·
2018-10-23 00:00
线程池
java
多线程
并发
Java并发编程(6)-
J.U.C
组件拓展
而FutureTask则是
J.U.C
中的类,但不是AQS的子类,FutureTask是一个可删除的异步
ZeroOne01
·
2018-10-19 21:42
并发编程
Fork
Join
Java
Java并发编程(5)-
J.U.C
之AQS及其相关组件详解
J.U.C
之AQS-介绍Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的并发工具,譬如ReentrangLock、Semaphore,而它们的实现都用到了一个共同的基类--AbstractQueuedSynchronizer
ZeroOne01
·
2018-10-19 16:18
JUC
AQS
并发工具包
Java
Java多线程进阶(四一)——
J.U.C
之executors框架:ScheduledThreadPoolExecutor
本文首发于一世流云专栏:https://segmentfault.com/blog...一、ScheduledThreadPoolExecutor简介在executors框架概述一节中,我们曾经提到过一种可对任务进行延迟/周期性调度的执行器(Executor),这类Executor一般实现了ScheduledExecutorService这个接口。ScheduledExecutorService在
Ressmix
·
2018-10-13 00:00
java
多线程
并发
线程池
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他