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 ConcurrentHashMap详解
ConcurrentHashMapConcurrentHashMap是
J.U.C
包里面提供的一个线程安全并且高效的HashMap,所以ConcurrentHashMap在并发编程的场景中使用的频率比较高
寂夜了无痕
·
2023-08-12 03:50
java
java
hashmap
ConcHashMap
[Java源码][并发
J.U.C
]---解析FutureTask
前言Future接口和实现Future接口的FutureTask类,代表异步计算的结果.简单点说就是实现有返回结果的task,实现Runnable接口的线程没有提供获得线程返回的结果,而FutureTask实现了异步获得计算结果的一种方式,也就是说可以先让一个线程去执行该task后自己去干其他的事情,等到一段时间后可以来获取该task的执行结果.本文源码:本文源码地址例子先使用一个例子简单看看Fu
nicktming
·
2023-08-12 02:45
面试官:小伙子你来讲一讲线程池是怎么回事(附面试题)
本文总结一下线程池是怎么回事第一部分:线程池类的结构线程池存在于Java的并发包
J.U.C
中,线程池可以根据项目灵活控制并发的数目,避免频繁的创建和销毁线程,达到线程对象的重用。
java小霜
·
2023-08-10 04:32
Java面试
java
开发语言
后端
架构
面试
J.U.C
ConcurrentHashMap(1.7)
1概述HashMap是JavaCollectionFramework的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap不是线程安全的。也就是说,在多线程环境下,操作HashMap会导致各种各样的线程安全问题,比如在HashMap扩容重哈希时出现的死循环问题,脏读问题等。HashMap的这一缺点往往会造成诸多不便,虽然在并发场景下HashTable和由同步包装器
贪睡的企鹅
·
2023-08-06 09:37
[并发
J.U.C
]---简单理解Unsafe
前言由于并发包中很多数据结构的底层实现都是依赖于CAS,CAS也就是用Unsafe实现.CAS操作有3个操作数,内存位置,预期原值,和新值,如果内存位置的值与预期原值相等,则在该内存位置填写新的值,否则不修改原值.本文源码:源码下载例子先通过一个简单的例子了解一下Unsafe的操作.packagecom.usafe;importsun.misc.Unsafe;importjava.lang.ref
nicktming
·
2023-07-24 15:32
Java 并发编程 - CyclicBarrier
J.U.C
之AQS-CyclicBarrier1、关于CyclicBarrier2、await方法2.1不带参的await方法2.2带参的await方法2.3CyclicBarrier带Runnable
STRANG-P
·
2023-07-21 12:22
线程系列
多线程
并发编程
CyclicBarrier
await
thread
Java 并发编程 - Semaphore
J.U.C
之AQS-Semaphore1、关于Semaphore2、acquire和release方法2.1acquire和release有参方法2.2acquire和release无参方法3、tryAcquire
STRANG-P
·
2023-07-21 12:52
线程系列
多线程
java
并发编程
thread
semaphore
Java线程池实现原理
J.U.C
提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。
星如雨グッ!(๑•̀ㅂ•́)و✧
·
2023-07-17 07:04
java
java
android
kotlin
『并发包入坑指北』之阻塞队列
image前言较长一段时间以来我都发现不少开发者对jdk中的
J.U.C
(java.util.concurrent)也就是Java并发包的使用甚少,更别谈对它的理解了;但这却也是我们进阶的必备关卡。
crossoverJie
·
2023-06-22 08:30
[Java源码][并发
J.U.C
]---并发工具类Atomic
前言本文主要分析一下原子更新基本类型包括AtomicBoolean,AtomicInteger和AtomicLong.由于这三个类的基本操作和原理是一样的,因此主要分析一下AtomicInteger类就可以了.本文源代码:代码下载原子更新基本类型类AtomicInteger例子1packagecom.sourcecode.atomic_AtomicInteger;importjava.util.f
nicktming
·
2023-04-21 12:59
Java程序员升级必备:一文详解多线程之线程同步,从基础到进阶
Java实现线程同步有如下几种方式使用synchronized或lock锁使用volatile修饰变量使用ThreadLocal使用
J.U.C
的类库,如原子操作类、Semaphore信号量、并发集合类等以下便一一讲解以下一
Java_苏先生
·
2023-04-20 09:15
J.U.C
|一文搞定Java锁体系
在介绍具体锁之前,我们来总结下Java中到底有哪些锁,这篇作为系列文章的开篇,我们主要来搞清楚Java锁的体系架构、和一些锁的概念为后面的文章铺垫。锁分类公平锁/非公平锁公平锁:多个线程按照申请锁的顺序来获取锁。非公平锁:非公平锁指多个线程获取锁的顺序并不是按照申请锁的顺序、有可能后申请的先获取到锁、或造成优先级反转或者锁饥饿现象。独占锁/共享锁独占锁:该锁每一次只能有一个线程持有,如Reentr
阅历笔记
·
2023-04-19 19:23
J.U.C
阻塞队列(一) - BlockingQueue接口
1阻塞队列1.1如何理解“队列”队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”。相对于栈只支持两个基本操作:入栈push()和出栈pop(),对于也只支持两个操作入队enqueue(),放一个数据到队列尾部;出队dequeue(),从队列头部取一个元素,因此队列跟栈一样,也是一种操作受限的线性表数据结构image1.2
贪睡的企鹅
·
2023-04-15 15:17
并发容器
J.U.C
共享对象安全
ArrayList(线程不安全)--->CopyOnWriteArrayList(线程安全,读操作时在原有数据上读)字面意思:写操作时复制。当对ArrayList进行写操作时,它先将原有数组拷贝一份,然后再新的数组上进行写操作,写完之后再将原来的数组指向新的数组。CopyOnWriteArrayList的add操作都是在锁(如图一,锁的概念可以回顾之前写的)下进行的,这样做是为了在并发操作时复制多
杨凯飞
·
2023-04-15 08:52
【死磕Java并发】—–
J.U.C
之Condition
在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在JavaSE5后,Java提供了Lock接口,相对于Synchronized而言,Lock提供了条件Condition,对线程的等待、唤醒操作更加详细和灵活。下图是Condition与Object的监视器方法的对比(摘自《Java并发编程的艺术》):im
Zal哥哥
·
2023-04-13 01:58
[03][01][06] ConcurrentHashMap 底层原理分析
ConcurrentHashMap的初步使用及场景CHM的使用ConcurrentHashMap是
J.U.C
包里面提供的一个线程安全并且高效的HashMap,所以ConcurrentHashMap在并发编程的场景中使用的频率比较高
悠娜的奶爸
·
2023-04-12 00:38
J.U.C
之 Condition
在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在JavaSE5后,Java提供了Lock接口,相对于Synchronized而言,Lock提供了条件Condition,对线程的等待、唤醒操作更加详细和灵活Condition提供了一系列的方法来对阻塞和唤醒线程:await():造成当前线程在接到信号或被
吉他手_c156
·
2023-04-11 05:27
深入理解 CAS 及 ABA问题
CAS是Atomic包的核心,更是整个
J.U.C
包的基石。本文将通过AtomicInteger这个类,来分析是如何通过CAS来保证Atomic的原子性的。
world6
·
2023-04-09 10:16
java基础知识
多线程
并发编程进阶
深入理解CAS
J.U.C
:Condition
Condition源码分析 调用Condition,需要获得Lock锁,所以意味着会存在一个AQS同步队列,先来看Condition.await方法。 调用Condition的await()方法(或者以await开头的方法),会使当前线程进入等待队列并释放锁,同时线程状态变为等待状态。当从await()方法返回时,当前线程一定获取了Condition相关联的锁:publicfinalvoida
沈先生的影子
·
2023-04-08 23:24
并发关键字
CyclicBarrierArrayBlockingQueue、linkedBlockingQueue、PriorityBlockingQueue、ConcurrentLinkedQueueUnsafeUnsafe类对于并发编程来说是个很重要的类,如果稍微看过
J.U.C
xidianhuihui
·
2023-04-07 18:48
服务端
并发容器
J.U.C
CopyOnWriteArrayList
J.U.C
其实就是JDK提供的一个包:java.util.concurrentCopyOnWriteArrayList相较于ArrayList,CopyOnWriteArrayList是线程安全的;在添加新元素时
乌鲁木齐001号程序员
·
2023-04-05 20:06
Java多线程并发之同步容器和并发容器-第一篇
本文是《凯哥分享Java并发编程之
J.U.C
包讲解》系列教程中的第五篇。如果想系统学习,凯哥(kaigejava)建议从第一篇开始看。从本篇开始,我们就来讲解讲解Java的并发容器。大致思路:先介
凯哥Java
·
2023-04-01 17:41
java并发编程之批量提交线程并获得结果
我们可以使用在jdk1.5加入到
J.U.C
的Callable,Future实现代码importjava.util.ArrayList;importjava.util.List;importjava.util.UUID
你干么那么凶
·
2023-03-30 23:51
J.U.C
之AQS:源码解析-响应中断
什么是中断参考线程的中断&InterruptAQS如何响应AQS响应中断的本质是让运行的线程能够从阻塞中唤醒并执行完毕。这其中包括2点1线程能从阻塞中唤醒,AQS使用LockSupport.park(this)阻塞线程。而此方法是支持中断。2线程能执行完毕正常退出,在AQS只有获取同步状态才能正常退出自旋循环。需要退出就需要在中断时抛出异常。独占同步响应中断/***功能同acquire,可以响应线
贪睡的企鹅
·
2023-03-28 20:36
synchronized与Lock的比较
通过互斥保障原子性,能够保护共享数据以实现线程安全,其作用包括保障原子性、可见性、有序性常见问题在平时聊天或者面试过程中,可能会被问到,既然已经有了synchronized了,为什么JSR166小组花这么多时间来开发
j.u.c
_BK_徐静
·
2023-03-28 04:56
枯燥的
J.U.C
- AbstractQueuedSynchronizer(二)
我们在上个章节初步分析了AQS(独占模式)同步等待队列的实现过程,这章我们将继续以
J.U.C
的基础API为切入点,分别对AQS的条件等待队列与共享锁实现进行源码分析。
枯燥的非洲猿
·
2023-03-25 13:26
J.U.C
之AQS-ReentrantLock与锁
ReentrantLockAQS同步组件首先要知道Java中的锁主要分两类锁,一种是synchronize锁,另外一种就是
J.U.C
中提供的锁,
J.U.C
里核心的锁是ReentrantLockReentrantLock
慕童
·
2023-03-24 22:37
Doug Lea在
J.U.C
包里面写的BUG又被网友发现了
这是why的第69篇原创文章BUG描述一个编号为8073704的JDKBUG,将串联起我的这篇文章。也就是下面的这个链接。https://bugs.openjdk.java.net/browse/JDK-8073704这个BUG在JDK9版本中进行了修复。也就是说,如果你用的JDK8,也许会遇到这样的问题。先带大家看看这个问题是怎么样的:这个BUG说:FutureTask.isDone方法在任务还
why技术
·
2023-03-23 18:05
java技术
多线程
面试题
java
多线程
面试
bug
jdk
并发编程必须要知道的几个基本问题
主要内容包括:并发编程的基本概念:并发和并行的区别多线程优点多线程的三个基本问题并发编程实践
J.U.C
框架Excutor框架Fork/Join框架并发编程两个基本问题讨论并发编程基本概念并发编程的产生并发编程是伴随
非典型理科男
·
2023-03-09 12:17
Android Lock锁实现原理详细分析
目录Lock简介synchronized和lock的区别写个Demolock源码总结Lock简介Lock接口位于
J.U.C
下locks包内,其定义了Lock应该具备的方法。
·
2023-02-27 18:27
J.U.C
之AQS及其相关组件详解
J.U.C
之AQS-介绍
J.U.C
即Java并发包(java.util.concurrent),
J.U.C
中提供了很多并发工具。
端碗吹水
·
2023-02-18 10:00
J.U.C
之Lock 总结
选择锁时的考量当只有少量竞争者的时候,synchronized是一个很好的通用的锁实现,而且synchronized不会引发死锁,JVM会自动解锁;竞争者不少,但线程的增长是可以预估的,ReentrantLock是一个很好的通用的锁实现;注意:选择锁的时候并不是最高级的才是最好的,适合自己使用场景的才是最好的;
乌鲁木齐001号程序员
·
2023-02-17 06:52
枯燥的
J.U.C
- ThreadPoolExecutor
线程线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的KLT模型,Java线程与OS线程保持1:1的映射关系,也就是说一个Java线程也会在操作系统里有一个对应的线程。Java线程有多种生命状态:image.png为什么要使用线程池用户态和内核态的概念为了限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者获取外围设备的数据,并发送到网络,CPU划分出两
枯燥的非洲猿
·
2023-02-06 04:55
使用CAS(AtomicReference)实现的单例模式
乐观锁的一种实现方式——CAS在JDK1.5中新增java.util.concurrent(
J.U.C
)就是建立在CAS之上的。
Xigong
·
2023-02-05 12:28
Doug Lea在
J.U.C
包里面写的BUG又被网友发现了
这个BUG在JDK9版本中进行了修复。也就是说,如果你用的JDK8,也许会遇到这样的问题。先带大家看看这个问题是怎么样的:image这个BUG说:FutureTask.isDone方法在任务还没有完成的时候就会返回true。image可以看到,这是一个P4级别(优先级不高)的BUG,这个BUG也是分配给了DougLea,因为FutureTask这就是他写的:image响应了国家政策:谁污染,谁治理
码上入坟
·
2023-02-04 13:23
【漫画】JAVA并发编程
J.U.C
Lock包之ReentrantLock互斥锁
J.U.C
包中还提供了一个叫做Locks的包,我好歹英语过了四级,听名字我就能马上大声的说:Locks包必然也可以用作互斥!
胖滚猪学编程
·
2023-01-31 01:21
初识并发编程(五) 初识
J.U.C
1:基础在Java5.0提供了java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步IO和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的Collection实现等。2:AQS(AbstractQueuedSynchronizer)AQS,在java.util.concur
楚景然
·
2022-11-30 09:07
高并发
基础技术
J.U.C
高并发
Java线程池实现原理及其在美团业务中的实践【美团技术团队】
J.U.C
提供的线程池:ThreadPoolExecutor类
好技术搬运工
·
2022-11-17 10:51
java
多线程
美团:Java线程池实现原理 阅读笔记
Java线程池实现原理及其在美团业务中的实践多核CPU多线程并行计算,提升服务器性能
J.U.C
提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务一、写在前面线程池是什么线程池
eluanshi12
·
2022-11-17 10:46
并发编程与高并发
java并发包的基石:AbstractQueuedSychronier及synchornized
java并发包的基石:AbstractQueuedSychronier简介AQS:AbstractQueuedSychronizer(抽象的队列同步器)是java的
j.u.c
包中Lock、Semaphore
我爱看明朝
·
2022-09-13 01:56
java
java
开发语言
并发容器线程安全应对之道-ConcurrentHashMap
2并发容器线程安全应对之道引言在前面,我们学习了hashmap大家都知道HashMap不是线程安全(put、删除、修改、递增、扩容都无锁)的所以在处理并发的时候会出现问题接下来我们看下
J.U.C
包里面提供的一个线程安全并且高效
·
2022-08-10 14:51
【Java面试】请谈谈AQS是怎么回事儿?
高手:AQS它是
J.U.C
这个包里面非常核心的一个抽象类,它为多线程访问共享资源提供了一个队列同步器。
·
2022-07-12 11:13
java
Java并发 -
J.U.C
并发容器类Map - HashMap的扩展知识
基于前面的Java并发-
J.U.C
并发容器类Map-HashMap简单分析,我们接着来对HashMap的相关知识进行一个补充。
右耳菌
·
2022-06-21 22:22
Java并发 -
J.U.C
并发容器类Map - HashMap简单分析
一个简单的HashMap的使用例子:packagehashmap;importjava.util.HashMap;/***@Author:Neco*@Description:一个简单的HashMap的使用*@Date:createin2022/6/2022:51*/publicclassTest{publicstaticvoidmain(String[]args){HashMapmap=newHa
右耳菌
·
2022-06-21 22:52
J.U.C
:线程基本概念
进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实
恒奇恒毅
·
2022-06-11 12:08
JavaSE
多线程
并发库
java
一文带你了解
J.U.C
的FutureTask、Fork/Join框架和BlockingQueue
摘要:
J.U.C
是Java并发编程中非常重要的工具包,今天,我们就来着重讲讲
J.U.C
里面的FutureTask、Fork/Join框架和BlockingQueue。
华为云开发者联盟
·
2022-06-10 14:00
浅谈Java中Lock和Synchronized的区别
从特性来看3.从性能方面来看1.从功能角度来看Lock和Synchronized都是java中去用来解决线程安全问题的一个工具2.从特性来看Synchronized是java中的同步关键字,Lock是
J.U.C
·
2022-04-28 18:30
【面试普通人VS高手系列】lock和synchronized区别
#普通人:嗯,lock是
J.U.C
包里面提供的锁,synchronized是Java中的同步关键字。他们都可以实现多线程对共享资源访问的线程安全性。#高手:下面我从4个方面
跟着Mic学架构
·
2022-04-13 14:00
Java并发编程系列之一并发理论基础
多线程学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清
J.U.C
包中各个多线程工具类之间的关系、特点及其使用场景,学习应该是从整体到局部、高屋建瓴,这对学习任何知识都至关重要。
·
2022-03-30 15:54
java多线程并发编程
java并发包JUC同步器框架AQS框架原文翻译
3.1同步状态3.2阻塞3.3队列3.4条件队列4用法4.1公平调度的控制4.2同步器5性能5.1开销5.2吞吐量6总结7致谢参考文献摘要在J2SE1.5的java.util.concurrent包(下称
j.u.c
·
2022-02-28 11:53
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他