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
JUC源码解读
CountDownLatch
源码解读
目录前言正文CountDownLatch使用场景CountDownLatch简单的使用CountDownLatch
源码解读
CountDownLatch结构和构造方法await()方法countDown(
程序员李哈
·
2023-12-28 08:37
源码解读
juc包系列
java
juc
后端
面试
数据结构
ReentrantLock
源码解读
前言在没接触java.util.concurrent并发包之前,大家在多线程情况下使用到的都是synchronized同步锁,这是c++也就是jvm层面的锁,不方便使用者观看源码,也不能自己对其扩展。所以今天给大家来解读一下ReentrantLock锁的源码。正文那么ReentrantLock的源码该如何入手呢?此时本人就传授一个看源码入手点,适用于任何源码!1.追源码之前要对他的api和底层干活
程序员李哈
·
2023-12-28 08:37
源码解读
java
后端
从源码全面解析Java 线程池的来龙去脉
作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、
JUC
源码系列如果感觉博主的文章还不错的话
爱敲代码的小黄
·
2023-12-28 08:56
#
高并发
java
面试
开发语言
后端
并发
【并发编程】(十三)
JUC
并发工具包的基础——AQS概述
文章目录1.AQS概念1.1.什么是AQS1.2.AQS的实现原理2.使用AQS实现互斥锁2.1.简单互斥锁实现2.2.可重入的实现1.AQS概念AQS是Java中的一个并发编程的框架,通过这个框架实现了一些并发编程中实用的功能。本篇只会简单的提一下AQS的概念和使用方式,后续的笔记中会依据各个AQS实现类的源码来更深入的解析。1.1.什么是AQSAQS全称AbstractQueuedSynchr
挥之以墨
·
2023-12-28 08:18
#
并发编程
Java
多线程
java
并发编程
Java并发编程面试题——
JUC
专题
文章目录一、AQS高频问题1.1AQS是什么?1.2唤醒线程时,AQS为什么从后往前遍历?1.3AQS为什么用双向链表,(为啥不用单向链表)?1.4AQS为什么要有一个虚拟的head节点1.5ReentrantLock的底层实现原理1.6ReentrantLock的公平锁和非公平锁的区别1.7ReentrantReadWriteLock如何实现的读写锁二、阻塞队列高频问题2.1说下你熟悉的阻塞队列
王二蛋!
·
2023-12-28 07:04
#
金三银四面试
面试
java
并发编程
Java多线程synchronized && Lock && volatile,看完这一篇就够了
线程安全问题一、对线程安全的理解(实际上是内存安全)二、线程同步的实现方法synchronized实现同步Lock实现同步volatile实现同步
JUC
的Callable实现同步三、守护线程四、ThreadLocal
后端漫漫
·
2023-12-28 07:42
Java
java
jvm
开发语言
spring中自定义scope的代码案例和
源码解读
使用spring的小伙伴都知道,一个bean实例是有其作用于的,比如:单例(singleton),多例(prototype),这些都是spring容器管理实例的一种方式,那么在spring中有没有办法按照我们自己的意愿去管理我们的实例呢?答案是肯定的,那就是spring中自定义scope。那么如何自定义呢?先看一个简单的bean标签:其中我定义了一个scope=“JackScope”的自定义bea
Jack爱258
·
2023-12-28 07:39
spring源码
scope
自定义scope
scope源码
spring源码
【java 高并发编程之
JUC
】高阶
JUC
特性总结
1线程中断机制1.1什么是中断?首先一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了。其次在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的机制——中断。中断只是一种协作机制,Java没有给中断增加任何语
Young丶
·
2023-12-28 07:37
JUC
java
jvm
开发语言
【java 高并发编程之
JUC
】2w字带你
JUC
从入门到精通
点击查看脑图目录地址,实时更新1什么是
JUC
1.1
JUC
简介在Java中,线程部分是一个重点,本篇文章说的
JUC
也是关于线程的。
JUC
就是java.util.concurrent工具包的简称。
Young丶
·
2023-12-28 07:36
JUC
java
jvm
JUC
【
JUC
并发编程】13 读写锁ReentrantReadWriteLock原理/源码解析
文章目录一、ReentrantReadWriteLock实现原理1、概述1)面试题2:为什么要使用读写锁?2)面试题3:为什么读写锁中读锁和写锁采用一个变量来标识?3)面试题4:读写锁如何保证写线程不饿死?4)如何使用读写锁?2、源码分析原理1)面试题1:读写锁如何实现的(实现原理)?2)成员变量/构造函数1>内部类Sync1>面试题5:为什么实例化Sync时要获取到state变量之后再setSt
秃秃爱健身
·
2023-12-28 07:23
#
精通JUC并发编程
java
juc
面试
【
JUC
并发编程】1 ThreadPoolExecutor线程池源码解析
文章目录一、为什么要使用线程池?二、ThreadPoolExecutor源码分析1.常用变量2.构造方法3.任务执行过程execute()4.addWorker()方法5.runWorker()方法6.processWorkerExit()1)如果线程池中的线程异常终止,线程池的工作线程数量会减少吗?7.shutdown()和shutdownNow()的区别三、总结一、为什么要使用线程池?降低资源
秃秃爱健身
·
2023-12-28 07:53
#
精通JUC并发编程
java
线程池
多线程
【
JUC
并发编程】 16 深入理解AQS的实现原理、源码分析
文章目录一、AQS原理1、AQS是什么?2、AQS的核心:CLH队列3、以独占锁同步状态的获取和释放为例:4、从具体的代码实现来看1)互斥锁`acquire()`获取互斥锁`release()`释放互斥锁2)共享锁`acquireShared()`获取共享锁`releaseShared()`释放共享锁5、面试题2:AQS中线程Node节点的PROPAGATE状态是什么意思?二、AQS源码分析1、a
秃秃爱健身
·
2023-12-28 07:53
#
精通JUC并发编程
java
【
JUC
并发编程】7 ReentrantLock锁机制原理/源码分析
文章目录一、Lock原理1、lock()获取锁流程2、unlock()释放锁流程:3、面试题2:为什么非公平锁的性能优于公平锁?二、ReentrantLock源码分析1、变量和构造器2、lock()加锁1)非公平锁的加锁2)公平锁的加锁3、unlock()释放锁一、Lock原理以ReentrantLock为例,其是基于AQS实现的可重入锁。1>ReentrantLock把所有Lock接口的操作都委
秃秃爱健身
·
2023-12-28 07:53
#
精通JUC并发编程
java
1.5 单结晶体管和晶闸管
一、单结晶体管1、单结晶体管的结构和等效电路在一个低掺杂的N型硅棒上利用扩散工艺形成一个高掺杂P区,在P区与N区接触面形成PN结,就构成了单结晶体管(UJT:Uni
juc
tionTransistor)。
passxgx
·
2023-12-28 06:57
#
第1章
半导体常用器件
硬件工程
模拟Spring缓存机制
阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入
juc
源码解析阶段4、深入jdk其余源码解析阶段5、深入jvm源码解析在日常开发中,缓存是提高系统吞吐量的常见手段。不论是使用Guava、Re
smart哥
·
2023-12-27 19:44
spring专题
spring
缓存
java
Redis布隆过滤器BloomFilter
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:Spring源码、
JUC
源码、Kafka原理、分布式技术原理、数据库技术如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成
爱吃芝士的土豆倪
·
2023-12-27 16:30
数据库技术
redis
数据库
缓存
Redis案例实战之Bitmap、Hyperloglog、GEO
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:Spring源码、
JUC
源码、Kafka原理、分布式技术原理、数据库技术如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成
爱吃芝士的土豆倪
·
2023-12-27 16:00
数据库技术
redis
数据库
缓存
学习iOS 内存管理
/mp.weixin.qq.com/s/CiqMlEIp1Ir2EJSDGgMooQiOS微信内存监控https://yq.aliyun.com/articles/3065iOS内存管理和malloc
源码解读
东方诗空
·
2023-12-27 05:16
【JavaWeb学习笔记】17 - ThreadLocal
二、ThreadLocal快速入门三、
源码解读
一、什么是ThreadLocal?1.ThreadLocal的作用,可以实现在同一个线程数据共享从而解决多线程数
yinhai1114
·
2023-12-27 04:52
学习
笔记
java
全网最新最全的接口自动化测试框架pytest-pluggy插件
源码解读
PluginManager类的其他功能
(1)unregister取消注册插件注册插件的过程都分析过了,取消注册过程就简单了,这里可以简单的看一下,这里主要就是对_name2plugin和_plugin2hookcallers这两个字典进行删除对应的插件,即取消注册插件,源代码如下:defunregister(self,plugin=None,name=None):"""unregisterapluginobjectandallitsc
测试-八戒
·
2023-12-27 01:24
pytest
python
开发语言
假装情侣系统H5支持分销易支付公众号源码
假装情侣系统三级分销可对接易支付官方支付开通会员独立saas框架支持H5公众号全局聊天共享资源数据演示站:https://yw.
juc
esoft.cn
爱哭的小张
·
2023-12-27 00:51
微信公众平台
微信开放平台
微信
php
Nebula Graph
源码解读
系列|客户端的通信秘密——fbthrift
NebulaGraph
源码解读
系列|客户端的通信秘密——fbthrift概述NebulaClients给用户提供了多种编程语言的API用于和NebulaGraph交互,并且对服务端返回的数据结构进行了重新封装
NebulaGraph
·
2023-12-26 15:17
04GORM
源码解读
简介查询查询流程构建查询SQL语句条件语句小结search结构体search的定义search的方法小结总结简介GORM
源码解读
,基于v1.9.11版本.查询上一节中,我们已经探究过了模型是如何定义的,
刷漆猫咪
·
2023-12-26 14:36
JUC
并发编程
来源:【尚硅谷】大厂必备技术之
JUC
并发编程2021最新版1什么是
JUC
1.1
JUC
简介在Java中,线程部分是一个重点,本篇文章说的
JUC
也是关于线程的。
永恒_顺其自然
·
2023-12-26 13:07
java
JUC
1、什么是
JUC
源码+官方文档业务:普通的线程代码ThreadRunnable没有返回值、效率相比入Callable相对较低!
浅梦2023
·
2023-12-26 13:07
java
多线程
并发编程
多进程
JUC
Thread 基础回顾
文章目录并行与并发进程与线程线程切换上下文创建线程的方法用户线程和守护线程Thread常用方法实例方法类方法线程打断示例线程的状态线程安全怎样尽可能的避免线程安全问题线程同步synchronized经典示例错误写法添加synchronized关键字最小化同步块最小化同步块,并进行重入判断Monitor监视器(管程)Monitor的核心组成部分锁优化轻量级锁自旋优化偏向锁偏向锁和轻量级锁锁消除wai
没事儿写两篇
·
2023-12-26 13:33
人在江湖之J.U.C
详解
wait/notify
synchronized
锁优化
锁自旋
偏向锁
PostgreSQL
源码解读
(143)- Buffer Manager#8(BufTableHashCode函数)
本节简单介绍了PostgreSQL缓存管理(BufferManager)中的实现函数ReadBuffer_common->BufferAlloc->BufTableHashCode,该函数根据BufferTag计算HashCode。一、数据结构BufferDesc共享缓冲区的共享描述符(状态)数据/**Flagsforbufferdescriptors*buffer描述器标记**Note:TAG_
cuichao1900
·
2023-12-26 13:24
数据库
PostgreSQL
源码解读
(138)- Buffer Manager#3(BufferAlloc函数)
本节简单介绍了PostgreSQL缓存管理(BufferManager)中的实现函数ReadBuffer_common->BufferAlloc,该函数是ReadBuffer的子过程.处理共享缓存的搜索。一、数据结构BufferDesc共享缓冲区的共享描述符(状态)数据/**Flagsforbufferdescriptors*buffer描述器标记**Note:TAG_VALIDessential
cuichao1900
·
2023-12-26 13:54
PostgreSQL
源码解读
(142)- Buffer Manager#7(hash_search_with_hash_value函数)
本节简单介绍了PostgreSQL缓存管理(BufferManager)中的实现函数ReadBuffer_common->BufferAlloc->BufTableInsert->hash_search_with_hash_value,该函数由BufTableInsert调用,对于给定的tag和bufferID,插入到哈希表中。一、数据结构BufferDesc共享缓冲区的共享描述符(状态)数据/*
cuichao1900
·
2023-12-26 13:54
数据库
PostgreSQL
源码解读
(140)- Buffer Manager#5(BufTableInsert函数)
本节简单介绍了PostgreSQL缓存管理(BufferManager)中的实现函数ReadBuffer_common->BufferAlloc->BufTableInsert,该函数对于给定的tag和bufferID,插入到哈希表中。一、数据结构BufferDesc共享缓冲区的共享描述符(状态)数据/**Flagsforbufferdescriptors*buffer描述器标记**Note:TA
cuichao1900
·
2023-12-26 13:53
PostgreSQL
源码解读
(98)- 分区表#4(数据查询路由#1-“扩展”分区表)
在查询分区表的时候PG如何确定查询的是哪个分区?如何确定?相关的机制是什么?接下来几个章节将一一介绍,本节是第一部分。零、实现机制我们先看下面的例子,两个普通表t_normal_1和t_normal_2,执行UNIONALL操作:droptableifexistst_normal_1;droptableifexistst_normal_2;createtablet_normal_1(c1intno
cuichao1900
·
2023-12-26 13:53
数据库
数据结构与算法
ArrayList
源码解读
ArrayList介绍ArrayList是基于动态数组的数据结构ArrayList随机访问速度快,中间插入与删除速度慢,尾部插入与删除速度也快。重要属性//存储元素的数组缓冲区transientObject[]elementData;//List的大小privateintsize;构造函数一publicArrayList(intinitialCapacity){if(initialCapacity
君顏
·
2023-12-26 12:05
vue3
源码解读
--setup
目录vue2源码vue3源码示例源码显然setup函数是作为组件的options传入的,故我们将代码定位到applyOptions哦豁~~并没有发现对setup的处理……通过走断点,在setupStatefulComponent内发现了对setup函数的读取处理在匡红1的位置,判断我们是否传入了参数2,并据此获取context并在下一步作为参数传入以便我们在代码中能正确读入匡红2的位置,则去执行了
习惯水文的前端苏
·
2023-12-26 07:17
Vue
源码解读
-异步更新
通过Object.defineProperty为对象的每个key设置getter、setter,从而拦截对数据的访问和设置。当对数据进行更新操作时,比如obj.key='newval'就会触发setter的拦截,从而检测新值和旧值是否相等,如果相等什么也不做,如果不相等,则更新值,然后由dep通知watcher进行更新。所以,异步更新的入口点就是setter中最后调用的dep.notify()方法
陈二狗想吃肉
·
2023-12-26 05:35
Java并发(十八)----常见线程安全类及实例分析
1、常见线程安全类StringIntegerStringBufferRandomVectorHashtablejava.util.concurrent(
JUC
)包下的类这里说它们是线程安全的是指,多个线程调用它们同一个实例的某个方法时
|旧市拾荒|
·
2023-12-26 03:02
#
Java并发
java
开发语言
DelayQueue和时间轮
DeylayQueue
JUC
中的延迟队列,看下面这两篇文章;https://www.jianshu.com/p/e0bcc9eae0aehttps://blog.csdn.net/dkfajsldfsdfsd
NazgulSun
·
2023-12-26 00:04
Collections 工具类和 Arrays 工具类常见方法
ConnectionsConnections工具类常用的方法:1.排序2.查找,替换排序3.同步控制(不推荐,线程安全的集合类型时请考虑使用
JUC
包下的并发集合)排序操作voidreverse(Listlist
不正经的程序员小龙
·
2023-12-25 23:11
ReenTrantLock源码浅析
##ReenTrantLock是什么ReenTrantLock是
juc
包下的一个经典的互斥锁,也是**可重入锁**(即当前线程在已经获取改锁后重复执行获取锁操作时不会引起死锁,并且不需要执行获取锁的操作
小阿宅java
·
2023-12-25 17:37
java并发编程系列-volatile内存实现和原理
volatile关键字的作用是保证多线程中变量的可见性,是
JUC
包中的核心。在内存模型基础中已经提到过,JVM是分为堆内存和栈内存的,堆内存在线程之间共享,而栈内存为线程内部私有,对其他线程不
起个名忒难
·
2023-12-25 14:39
SpringBoot2.2.6启动run方法之refreshContext
源码解读
进度首先我们的源码阅读进度publicConfigurableApplicationContextrun(String...args){//用于记录启动时间Sto
噼咔丘
·
2023-12-25 09:29
【
JUC
】Java对象内存布局和对象头
【
JUC
】Java对象内存布局和对象头文章目录【
JUC
】Java对象内存布局和对象头1.对象的内存布局1.1对象头1.1.1对象标记1.1.2类元信息/类型指针1.2实例数据1.3对齐填充2.测试1.对象的内存布局在
嗯mua.
·
2023-12-25 01:29
JUC并发编程
java
jvm
数据结构
【
JUC
】二十八、synchronized锁升级之偏向锁
文章目录1、偏向锁出现的背景2、从共享对象的内存结构看偏向锁3、偏向锁的持有4、启动偏向锁5、sleep暂停来启动偏向锁6、偏向锁的撤销7、总体流程8、SinceJava15偏向锁的废除1、偏向锁出现的背景如果一个线程连续几次抢到锁,仍然重复加锁解锁,就会导致用户态和内核态频繁切换,这显然是有改进空间的。如之前买票的例子:publicclassSaleTick{publicstaticvoidma
-代号9527
·
2023-12-25 01:12
JUC
java
偏向锁
锁升级
Volatile理解
JavaVolatile1.volatile理解2.volatile不保证原子性3.Volatile禁止指令重排4.volatile的应用
JUC
(java.util.concurrent)进程和线程进程
wanggs
·
2023-12-24 17:44
spring Ioc
源码解读
(注解类的)一
SpringIoC(InversionofControl,控制反转)容器是Spring框架的核心组件之一,用于管理和组织应用中的Java对象(也称为Bean)。IoC容器负责创建、配置、组装并管理Bean的生命周期。springIoc的容器加载过程配置代码:publicstaticvoidmain(String[]args){AnnotationConfigApplicationContextco
qq_31273845
·
2023-12-24 15:17
spring
java
前端
Java之HashMap核心
源码解读
HashMap核心
源码解读
HashMap简介HashMap主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一,是非线程安全的。
努力学习的小飞侠
·
2023-12-24 12:07
Java
java
哈希算法
散列表
Java之ArrayList
源码解读
ArrayList
源码解读
ArrayListArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。
努力学习的小飞侠
·
2023-12-24 12:07
Java
开发语言
java
Java之LinkedList核心
源码解读
LinkedList核心
源码解读
LinkedList是一个基于双向链表实现的集合类,经常被拿来和ArrayList做比较LinkedList插入和删除元素的时间复杂度?
努力学习的小飞侠
·
2023-12-24 11:05
Java
java
开发语言
Ubuntu20.04 Linux系统安装mujoco和mujoco_py
Ubuntu20.04Linux系统安装mu
juc
o200和mujoco_pymujoco的功能就不介绍了,熟悉强化学习的同学应该都知道,这个一个功能非常强大的物理引擎,通过mujoco生成强化学习环境
唯唯诺诺王德发
·
2023-12-23 23:42
强化学习
ubuntu
python
linux
详解
JUC
中的基础组件AQS
AQS是
JUC
包中的基础组件,许多同步器例如ReentrantLock、Semaphore等都是基于AQS实现的,如果不懂AQS,怎敢说自己懂并发编程?
tangzhenhao
·
2023-12-23 16:51
JUC
并发编程 07——Java中的并发工具类
目录一.等待多线程完成的CountDownLatchjoinCountDownLatch二.同步屏障CyclicBarrier三.CyclicBarrier和CountDownLatch的区别四.控制并发线程数的Semaphore应用场景Semaphore实现原理一.等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。join假如有这样一
汤姆&Tom
·
2023-12-23 06:05
JUC并发编程
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
其他