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源码解读
通过示例
源码解读
React首次渲染流程
目录说明题目首次渲染流程renderbeginWorkcompleteUnitOfWorkcommit准备阶段beforemutation阶段mutation阶段切换FiberTreelayout阶段题目解析总结说明本文结论均基于React16.13.1得出,若有出入请参考对应版本源码。参考了React技术揭秘。题目在开始进行源码分析前,我们先来看几个题目:题目一:渲染下面的组件,打印顺序是什么?
·
2023-04-20 01:28
Java并发工具合集
JUC
大爆发
1.CountDownLatchCountDownLatch是一个同步计数器,初始化的时候传入需要计数的线程等待数,可以是需要等待执行完成的线程数,或者大于,一般称为发令枪。\countdownlatch是一个同步类工具,不涉及锁定,当count的值为零时当前线程继续运行,不涉及同步,只涉及线程通信的时候,使用它较为合适1.1作用用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥
白露与泡影
·
2023-04-20 01:07
java
开发语言
JUC
并发编程之CompletableFuture
Futurefuture是java5新加的一个接口,他提供了一种异步并行计算的功能接口定义了操作异步任务执行的一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务是否执行完毕目的:异步多线程执行且有返回结果,特点:多线程/有返回/异步任务补充:Runnable实现的是run方法,没有返回值,没有异常,Callable实现的是call方法,有返回值,需要处理异常Futur
是Smoky呢
·
2023-04-19 23:11
java
开发语言
Redis 的两个应用
Redis的两个应用描述阻塞队列:使用Redis实现分布式场景下,
JUC
中BlocingQueue的功能。实现的理论基础,Redis是单线程的一个系统,锁提供给我们的命令都是原子性的。
bluedraam_pp
·
2023-04-19 20:12
redis
redis
java
数据库
Java多线程编程基石ThreadPoolExecutor示例详解
目录前言为什么用线程池参数介绍核心线程数和最大线程数设置使用示例线程池执行任务的流程线程池执行流程图
源码解读
基础属性和变量execute(Runnablecommand)addWorker(RunnablefirstTask
·
2023-04-19 19:07
ijkplayer解码流程
源码解读
ijkplayer是一款基于ffmpeg的在移动端比较流行的开源播放器。FFmpeg是一款用于多媒体处理、音视频编解码的自由软件工程,采用LGPL或GPL许可证。要想理解ijkplayer源码,首先得知道视频播放器的基本原理。视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,音视频解码,音视频同步。如果播放的是本地文件则不需要解协议。ijkplayer核心源码都在C文件中
凉亭下
·
2023-04-19 15:51
Android
面试
ffmpeg
从ReentrantLock角度解析AQS
那时候重点加入了java.util.concurrent并发包,我们简称为
JUC
。
JUC
下提供了很多并发编程实用的工具类,比如并发锁lock、原子操作atomic、线程池操作Executor等等。
·
2023-04-19 05:47
javaaqs源码并发编程
【面试】Java线程阻塞和唤醒的几种方式?
接口三、LockSupport四、相关面试题总结:前言三种让线程等待和唤醒的方法如下:方式一:使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒线程方式二:使用
JUC
逆流°只是风景-bjhxcc
·
2023-04-19 04:41
Java高频面试题
java
面试
jvm
JUC
学习(五):ArrayList的线程安全问题分析与解决方案(vector、Collections、写时复制技术)
目录一、异常演示二、解决方案1、vector2、Collections工具类3、CopyOnWriteArrayList写时复制技术三、写时复制技术1、特性2、原理一、异常演示循环创建线程,将数据放入集合的同时,从集合中读取数据。/***list集合线程不安全问题*/publicclassThreadDemo04{publicstaticvoidmain(String[]args){Listlis
玉面大蛟龙
·
2023-04-19 04:35
java
java
juc
多线程
线程安全
JUC
源码系列-AQS共享锁的获取与释放
前言在前面两篇系列文章中,已经讲解了独占锁的获取和释放过程,而共享锁的获取与释放过程也很类似,如果你前面独占锁的内容都看懂了,那么共享锁你也就触类旁通了。共享锁与独占锁的区别共享锁与独占锁最大的区别在于,共享锁的函数名里面都带有一个Shared(抖个机灵,当然不是这个)。独占锁是线程独占的,同一时刻只有一个线程能拥有独占锁,AQS里将这个线程放置到exclusiveOwnerThread成员上去。
阿瑞的博客
·
2023-04-19 00:28
源码
面试题
并发编程
java
并发编程
JUC源码
Golang负载均衡器Balancer的
源码解读
Balancer是一个由Golang开发的反向代理7层负载均衡,是一个适合初学者学习的Golang项目,今天我们就来看看这个项目是如何实现的。前言在开始了解具体的项目前需要了解一些基础的概念。反向代理反向代理指的是当用户访问接口或者是服务器资源时并不直接访问具体服务器,而是通过访问代理服务器,然后代理服务器根据具体的用户请求去具体的内网中的服务器获取所需的数据。反向代理在互联网中被大量应用,通常反
·
2023-04-18 22:41
后端go负载均衡
gRPC-Go
源码解读
一 客户端请求链路分析
最近在学习gRPC相关的知识,为啥要学呢?因为一直在用,古人云,“工欲善其事,必先利其器”。为此,花了不少时间阅读gRPC-Go的源码,收货甚多,比如透过服务发现和负载均衡这俩组件来学习复杂模块之间低耦合高内聚的设计方法,透过bdp采样与http2流量窗口自动伸缩学习网络性能优化等等。RPC是RemoteProcedureCall的缩写,中文直译为远程过程调用,与之相对的则是本地过程调用,即本地的
yyyyyyyuande
·
2023-04-18 17:06
gRPC
gRPC
gRPC-Go
源码解读
三 服务端处理流程分析
相较于Client端的复杂处理流程,Server端相对来说简单了很多,核心就是创建个TCP套接字并监听,收到客户端连接请求则起个go协程处理,子协程根据请求中的服务名和方法名调用对应的服务方法处理,处理完成之后则返回响应。整个过程不涉及服务发现和负载均衡,因此代码相对简洁。下面以gRPC-Go1.54.0-dev版本中examples/helloworld为例,先看看pb的服务定义:package
yyyyyyyuande
·
2023-04-18 17:04
gRPC
gRPC
【Spring Cloud Alibaba】(二)微服务调用组件Feign原理+实战
HTTP调用vsFeign(RPC)调用单独使用Feign实战Feign核心
源码解读
Feign整体设计架构SpringCloudOpenFeign实战Feign在实际项目的通常做法最后前言通过上文,我们掌握了
lsh8886
·
2023-04-18 15:42
微服务
java
spring
cloud
JUC
并发编程之读写锁原理
1.图解流程读写锁用的是同一个Sycn同步器,因此等待队列、state等也是同一个t1w.lock,t2r.lockt1成功上锁,流程与ReentrantLock加锁相比没有特殊之处,不同的是写锁状态占了state的低16位,而读锁使用的是state的高16位2)t2执行r.lock,这时进入读锁的sync.acquireShared(1)流程,首先会进入tryAcquireShared流程。如果
晓风残月Lx
·
2023-04-18 13:10
JUC
java
JUC
基于WebSocket创建一个在线聊天室
要创建真正的WebSocket应用,首先,得有一个基于MVC的Web应用,也就是我们在前面用koa2和Nun
juc
ks创建的Web,在此基础上,把WebSocket添加进来,才算完整。
程序员柳
·
2023-04-18 03:07
nodejs教程
websocket
前端
网络协议
【JavaEE】关于synchronized总结-Callable用法及
JUC
的常见问题
本篇文章总结出,Synchronized具有以下特性,加锁工作过程,锁消除,锁粗化,Callable接口的用法,
JUC
的常见问题~~目录文章目录一、synchronized的基本特点二、synch
xyk:
·
2023-04-18 01:13
JavaEE
java
面试
java-ee
数据结构
算法
AQS实现原理分析
AQS什么是AQSAQS(AbstractQueuedSynchronizer)即抽象队列同步器,是一套可以实现同步锁机制的框架,是许多
JUC
内同步框架的基石。
y我见青山多妩媚
·
2023-04-17 22:34
技术
AQS
JUC
深入 Java 线程池:从设计思想到
源码解读
在jdk1.5的
JUC
包中有一个Executors,他能使我们创建的线程得到复用,不会频繁的创建和销毁线程。线程池首先创建一些线程,它们的集合称为线程池。
「已注销」
·
2023-04-17 21:23
java
开发语言
后端
程序人生
面试
源码解读
Dubbo分层设计思想
如图描述Dubbo实现的RPC整体分10层:service、config、proxy、registry、cluster、monitor、protocol、exchange、transport、serialize。service:使用方定义的接口和实现类;config:负责解析Dubbo定义的配置,比如注解和xml配置,各种参数;proxy:主要负责生成消费者和提供者的代理对象,加载框架功能,比如提
陈二狗想吃肉
·
2023-04-17 19:37
Android进阶宝典 --- 最新LiveData LifeCycle
源码解读
Jetpack组件,如今是google力推的架构模式,它能够帮助我们快速构建项目,在JectPack丰富的组件当中,生命周期几乎是贯穿全部,万物皆始于声明周期,从本章开始,就开始深入JectPack核心组件源码1LiveData源码分析看到LiveData这个名字,第一感觉这是一个数据类,其实不是的,LiveData是能够持有任意一种数据并且能够对这个数据进行观察。在LiveData之前,我们通过
Awesome_lay
·
2023-04-17 17:24
android
java
ui
android
jetpack
源码
从ReentrantLock角度解析AQS
那时候重点加入了java.util.concurrent并发包,我们简称为
JUC
。
JUC
下提供了很多并发编程实用的工具类,比如并发锁lock、原子操作atomic、线程池操作Executor等等。
知了一笑
·
2023-04-17 17:45
Java编程
核心基础
java
AQS
并发
JVM类加载过程
主要加载的是jre提供的rt.jar包等基础jar包扩展类加载器:主要加载的是jar提供的ext.jar下面的类应用程序类加载器:主要加载java代码里面的类三个类加载器的关系是:
源码解读
:注意:应用程序类加载器的父类并不是扩展类加载器
qxy_1218
·
2023-04-17 14:08
jvm
java
jar
BlocksKit+UIKit
源码解读
UIImagePickerController+BlocksKit.h类别实现2个block方法回调如下,image.png动态代理对象image.png.m实现image.pngbk_registerDynamicDelegate方法主要实现内容1动态创建a2_delegate属性。并与原UIImagePickerControllerdelegate属性做方法交换。2在a2_delegatese
孔凡伍
·
2023-04-17 07:01
python标准库threading
源码解读
【一】
转载自本人知乎:https://zhuanlan.zhihu.com/p/92702108目录1.with2.condition3.semaphore1.with还是有必要先讲解一下with的用法。它管理着类的“前世后生”,也就是在进入和退出类的时候调用。当然不是什么类都能够使用“with”:它必须实现两种“特殊方法”,即enter()和exit();字面意思就可以看出来“入口”和“出口”。基本用
甘蔗JS
·
2023-04-17 07:22
JUC
并发工具
JUC
并发工具一、CountDownLatch应用&源码分析1.1CountDownLatch介绍CountDownLatch就是
JUC
包下的一个工具,整个工具最核心的功能就是计数器。
llp1110
·
2023-04-17 05:29
并发编程
java
JUC
-AQS源码篇
JUC
-AQS原理篇
JUC
-AQS源码篇
JUC
-AQS的Condition之await和signal源码解析
JUC
-CountDownLatch基础篇
JUC
-CountDownLatch源码分析
JUC
-Semaphore
翟小江
·
2023-04-17 00:58
#
JUC
java
JUC
多线程
JUC
源码分析6-locks-AQS-独占模式
AbstractQueuedSynchronizer(下面简称AQS),javadoc说明:Providesaframeworkforimplementingblockinglocksandrelatedsynchronizers(semaphores,events,etc)thatrelyonfirst-in-first-out(FIFO)waitqueues。1.提供一个FIFO等待队列,使用
熊猫小牛牛
·
2023-04-17 00:28
JUC源码系列
JUC
源码
JUC
之三:AQS独占锁的获取过程(含ReentrantLock代码分析)
文章目录前言1、AQS核心stat双向队列(等待队列)CAS2、ReentrantLock内部类3、公平锁、非公平锁、独占锁的获取tryAcquireaddWaiterenqenq的尾分叉与prev的有效性acquireQueuedshouldParkAfterFailedAcquireparkAndCheckInterrupt4、不公平的、不响应中断的独占锁的获取ReentrantLock内部类
炸了毛的猫
·
2023-04-17 00:28
Java
数据结构
java
JUC
-AQS原理篇
JUC
-AQS原理篇
JUC
-AQS源码篇
JUC
-AQS的Condition之await和signal源码解析
JUC
-CountDownLatch基础篇
JUC
-CountDownLatch源码分析
JUC
-Semaphore
翟小江
·
2023-04-17 00:28
#
JUC
java
JUC
多线程
JUC
基石-AQS框架
1.AQS是什么?从字面上来看:抽象的队列同步器关键词:队列同步器位置:packagejava.util.concurrent.locks;AbstractQueuedSynchronizer2.它能做什么,解决什么问题?因为加锁就会有阻塞的时候,所以我们就需要一个队列能管理等待的线程。如何去管理?AQS就是这个问题的落地实现。3.简介图4.源码解析AQS功能简介AQS重要属性/***Thesyn
weixin_44611956
·
2023-04-17 00:27
源码
java
后端
架构
JUC
并发基石之AQS源码解析--独占锁的获取
一、简介AQS(AbstractQueuedSynchronizer),抽象队列同步器,是Java中众多的锁以及并发工具的基础,比如ReentrantLock、ReentrantReadWriteLock、CountDownLatch、CyclicBarrier。AQS有独占锁以及共享锁两种实现,今天,我们来分析AQS获取独占锁的源码。二、源码分析先看看继承关系它继承了AbstractOwnabl
weixin_44029692
·
2023-04-17 00:57
java并发
源码解析
多线程
java
并发编程
多线程
JUC
并发基石之AQS源码解析--独占锁的释放
JUC
并发基石之AQS源码解析–独占锁的获取上一篇文章中,我们分析了独占锁的获取操作,这篇文章我们来看看独占锁的释放,释放锁的逻辑相对简单,我们来看源码:publicfinalbooleanrelease
weixin_44029692
·
2023-04-17 00:57
java并发
源码解析
多线程
java
多线程
Java并发-
JUC
-AQS-共享模式源码解析
文章目录说明疑问为什么需要实现两种不同模式什么是共享模式概述源码分析总结说明每个Java工程师都应该或多或少地了解AQS,我已经反复研究了很长时间,忘记了一遍又一遍地看它.每次我都有不同的经历.这一次,我打算重新拿出系统的源代码,并将其总结成一系列文章,以供将来查看.一般来说,AQS规范是很难理解的,本次准备分五篇文章用来分析AQS框架:第一篇(翻译AQS论文,理解AQS实现思路)第二篇(介绍AQ
颍川道人
·
2023-04-17 00:26
并发
java
juc
AQS
并发
Java并发-
JUC
-AQS-独占模式源码解析
文章目录说明疑问为什么需要实现两种不同模式什么是独占模式概述源码分析总结说明每个Java工程师都应该或多或少地了解AQS,我已经反复研究了很长时间,忘记了一遍又一遍地看它.每次我都有不同的经历.这一次,我打算重新拿出系统的源代码,并将其总结成一系列文章,以供将来查看.一般来说,AQS规范是很难理解的,本次准备分五篇文章用来分析AQS框架:第一篇(翻译AQS论文,理解AQS实现思路)第二篇(介绍AQ
颍川道人
·
2023-04-17 00:25
并发
java
JUC
AQS
并发
JUC
源码阅读之ReentrantLock-AQS独占模式的典型实现
ReentrantLock是一个可以重入的互斥(独占)锁,支持公平锁和不公平锁(默认)。他的内部实现主要是有一个Sync内部类,具体情况我们注意阅读源码进行分析。1.SyncSync是一个实现了AQS的内部类,他还有FairSync和NonFairSync两种实现。Sync是这个锁的基础,使用了AQS中的state来表示当前拥有的锁的数量(因为是重入锁,可能被多次lock)。abstractsta
我不会回来的
·
2023-04-17 00:55
java源码阅读
【
JUC
源码】
JUC
核心:AQS(二)同步队列源码分析(独占锁)
AQS系列:【
JUC
源码】
JUC
核心:AQS(一)底层结构分析【
JUC
源码】
JUC
核心:AQS(二)同步队列源码分析(独占锁)【
JUC
源码】
JUC
核心:AQS(三)同步队列源码分析(共享锁)【
JUC
源码
二狗家有矿
·
2023-04-17 00:25
Java并发
JUC
核心--AQS
AbstractQueuedSynchronizer一.AQS原理1.等待队列—CLH锁AQS核心思想是,如果被请求的共享资源空闲,那么就将当前请求资源的线程设置为有效的工作线程,将共享资源设置为锁定状态;如果共享资源被占用,就需要一定的阻塞等待唤醒机制来保证锁分配。这个机制主要用的是CLH队列的变体实现的,将暂时获取不到锁的线程加入到队列中。CLH:Craig、LandinandHagerste
卑微的小涛子
·
2023-04-17 00:25
java
juc
面试
职场和发展
Java之
juc
旅途-AQS(二)
背景通常情况下解决多线程共享资源逻辑一致性问题有两种方式:互斥锁、自旋锁。互斥锁当发现资源被占用的时候,会阻塞自己进行休眠,直到资源解除占用然后被唤醒获取资源。其在linux为互斥量的实现,底层特性:原子性:把一个互斥量锁定为一个原子操作,这意味着操作系统(或pthread函数库)保证了如果一个线程锁定了一个互斥量,没有其他线程在同一时间可以成功锁定这个互斥量;唯一性:如果一个线程锁定了一个互斥量
我叫小八
·
2023-04-17 00:54
java
java
JUC
源码阅读(一)-AQS
一、AQS简介AbstractQueuedSynchronizer,简称AQS,
JUC
并发包中常用的ReentrantLock,CountDownLatch等都依赖AQS。
Java部落格
·
2023-04-17 00:54
并发编程
多线程
JUC
并发编程
AQS
JUC
--AQS源码分析(一)CLH同步队列
1概述了解过
JUC
的源码,我们就可以知道
JUC
下面很多工具的实现都是依靠AQS,而AQS中用于保存等待线程的队列就是CLH。CLH是一个FIFO的队列。队列的每一个节点都是一个Node对象。
ONROAD0612
·
2023-04-17 00:24
Java高并发
Java源码解析
JUC
--AQS设计
尝试设计CAS能够原子的对一个值进行写操作,那么可以将这个值(称为status)作为竞争资源的标记位。在多个线程想要去修改共享资源时,先来读取status,看能不能获取到写status的权限。拒绝其它线程的调用怎么设计呢?有两种业务场景:有的业务可能只是快速尝试获取一下共享资源,获取不到也没关系,会进行其它处理,有的业务线程一定要获取共享资源才能进行下一步处理,如果没有获取到,愿意等待。第一种场景
韩某人的个人笔记
·
2023-04-17 00:23
JUC
java
开发语言
java
JUC
源码系列-AQS独占锁获取
前言AQS(AbstractQueuedSynchronizer)是JAVA中众多锁以及并发工具的基础,其底层采用乐观锁,大量使用了CAS操作,并且在冲突时,采用自旋方式重试,以实现轻量级和高效地获取锁。AQS虽然被定义为抽象类,但事实上它并不包含任何抽象方法。这是因为AQS是被设计来支持多种用途的,如果定义抽象方法,则子类在继承时必须要覆写所有的抽象方法,这显然是不合理的。所以AQS将一些需要子
阿瑞的博客
·
2023-04-17 00:23
面试题
并发编程
源码
并发编程
juc源码
面试
AQS
Java多线程技术之八(
JUC
之原子类)
JUC
中的原子类可以分为5类:基本类型、引用类型、数组类型、对象属性更新器和累加器。二、基本类型AtomicInteger整形原子类Atomi
愚工J
·
2023-04-16 22:42
源码解读
-ArrayList
ArrayList都很熟悉了List的接口大小可调整的实现类除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。线程不安全实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在ArrayList中,我们可以通过元素的序号快速获取元素对象;这就是快速随机访问。1.ArrayLis
Jenny的小迷妹啊
·
2023-04-16 19:57
JUC
-读写锁&Semaphore
章节目录:一、ReentrantReadWriteLock1.1概述1.2基本使用1.3注意事项二、缓存应用2.1缓存更新策略2.2读写锁实现一致性缓存三、读写锁原理3.1t1加写锁、t2加读锁3.2其它线程加读写锁3.3t1释放写锁3.4t1、t2释放读锁3.5源码分析四、StampedLock4.1基本使用4.2读写优化4.3注意事项五、Semaphore5.1基本使用5.2限制对共享资源的使
饺子泡牛奶
·
2023-04-16 17:52
JUC
java
3-Spring架构源码分析-spring体系
-Spring架构源码分析-Spring源码搭建2-Spring架构源码分析-SSM框架说明3-Spring架构源码分析-spring体系4-Spring架构源码分析-SpringIOC机制设计思想和
源码解读
xianghan收藏册
·
2023-04-16 13:42
#
spring
spring
JUC
源码系列-ReentrantLock独占锁的释放
前言开始之前先提一句,JAVA的内置锁在退出临界区之后是会自动释放锁的,但是ReentrantLock这样的显式锁是需要自己显式的释放的,所以在加锁之后一定不要忘记在finally块中进行显式的锁释放:Locklock=newReentrantLock();...lock.lock();try{//更新对象//捕获异常}finally{lock.unlock();}一定要记得在finally块中释
阿瑞的博客
·
2023-04-16 11:22
并发编程
面试题
源码
面试
并发编程
ReetrantLock
juc源码
并发编程基础随笔小记-----volatile
并发编程基础随笔小记volatile:JVM提供的轻量级的同步机制
JUC
------Package.java.util.concurrent1、可见性2、多线程复杂计算中不保证原子性3、不允许指令重排JMMjava
weixin_40252818
·
2023-04-16 08:58
并发编程基础
并发编程基础的一些随笔小计
从ReentrantLock角度解析AQS
那时候重点加入了java.util.concurrent并发包,我们简称为
JUC
。
JUC
下提供了很多并发编程实用的工具类,比如并发锁lock、原子操作atomic、线程池操作Executor等等。
程序员万万
·
2023-04-16 08:14
java
jvm
开发语言
AQS
上一页
39
40
41
42
43
44
45
46
下一页
按字母分类:
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
其他