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源码解读
RocketMQ
源码解读
之Store
没有目的,就做不成任何事情;目的渺小,就做不成任何大事。——狄德罗大纲图示本节思考:>当topic数量增多到100+时,kafka的单个broker的TPS降低了1个数量级,而RocketMQ在海量topic的场景下,依然保持较高的TPS?>CommitLog的”随机读”对性能的影响?我们前面知道,RocketMQ是基于文件存储,所有消息的本体都保存在Commitlog上,消息的生产是顺序写,效率
娆疆_蚩梦
·
2023-04-11 08:13
使用Fegin实现文件上传和
源码解读
在最近的一次开发过程中有同事说遇到使用Feign上传文件失败的情况,自己觉得有点奇怪,因为我自己之前记得使用Feign上传文件都是成功的。自己特地上网搜索了一下,确实有一些相关的问题。为了验证自己的猜想我决定自己来好好看一下Feign上传文件到底是怎么一个情况。1、准备demo按照老规矩,我们还是通过代码来说明问题,为了省事我使用的还是上次的demo代码,只是增加了一个支持文件上传的接口,demo
非典型_程序员
·
2023-04-11 05:30
JUC
并发编程——AQS
源码解读
目录1、AQS是什么2、LockSupport的使用3、结合ReentrantLock分析AQS源码非公平加锁操作释放锁操作1、AQS是什么AQS(AbstractQueuedSynchronizer)是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLo
熟透的蜗牛
·
2023-04-11 05:16
JUC
源码分析
AQS
并发编程
AQS源码分析
JUC
并发编程,看这一篇就够了
学的B站狂神的
JUC
教程,以及自己另外看书记的笔记,对视频中的内容做了更为详细的笔记目录一、什么是
JUC
二、LOCK锁三、生产者和消费者问题三.八锁现象四、多线程下的集合类不安全ListSetMap五、
菜鸟a小李
·
2023-04-11 05:15
Java
java
JUC
并发编程高级篇第六章之Synchronized锁升级(无锁->偏向锁->自旋锁->重量锁)
文章目录1、锁指向总结2、锁升级过程2.1、无锁2.2、偏向锁2.2.1、什么时候升级成偏向锁?2.2.1、偏向锁的原理?2.2.3、偏向锁开启条件?2.3、撤销偏向锁2.3.1、发生的条件2.3.2、全局安全点的概念2.4、轻量锁(CAS)2.4.1、发生的时机2.4.2、加锁2.4.3、解锁2.4.4、释放CAS锁2.5、重量级锁/锁膨胀2.5.1、发生的时机2.5.2、步骤原理3、锁升级后,
爱吃糖的靓仔
·
2023-04-11 05:14
java
jvm
c++
周阳老师
JUC
并发编程
1.序章1)
JUC
是什么?java.util.concurrent在并发编程中使用的工具包对
JUC
知识的高阶内容讲解和实战增强2)为什么学习并用好多线程极其重要?
苦 糖 果
·
2023-04-11 05:14
#
多线程与并发
面试
juc
并发编程
多线程
JUC
并发编程常见面试题目
1.进程和线程,并发和并行进程:进程是计算机程序在一个数据集上的一次运行过程,也是资源分配和调度的基本单位线程:线城是进程中的一个执行单元。一个进程中至少有一个线程并行:指的是两个或多个事件在同一时刻发生,并发:指的是两个或多个事件在同一时间间隔内发生2.守护线程和用户线程的区别用户(User)线程:运行在前台,执行具体的任务,如程序的主线程守护(Daemon)线程:运行在后台,为用户线程服务。一
corlor_龙
·
2023-04-11 05:44
java面试
java
并发编程
面试
JUC
并发编程高级篇第四章之ThreadLocal(人手一份,天下安)
文章目录1、ThreadLocal的简介1.1、常见的面试题(也是本次的讲解的内容)1.2、什么是ThreadLocal1.3、ThreadLocal的所用1.4、没有出现ThreadLocal前后的变化1.5、ThreadLocal代码示例1.6、阿里巴巴对ThreadLocal的使用要求1.7、ThreadLocal的源码分析2、ThreadLocal弱引用问题2.1、什么是内存泄露?2.2、
爱吃糖的靓仔
·
2023-04-11 05:44
java
jvm
开发语言
JUC
并发编程高级篇第五章之对象内存布局和对象头[new Object 占用多少字节? ]
文章目录1、对象的构成1.1、对象头(header)1.1.1、对象标记(markWord)1.1.2、类元信息(类型指针)1.2、实例数据(instancedata)1.3、对齐填充(保证8字节的倍数)2、Objecto=newObject证明2.1.1、JOL证明2.2.1、压缩指针1、对象的构成对象的构成主要是由对象头(header),实例数据(instancedata),对齐填充(保证8字
爱吃糖的靓仔
·
2023-04-11 05:44
java
jvm
开发语言
JUC
并发编程之AQS源码解析(共享锁)
上一篇谈到独占锁,共享锁和独占锁有很多相似之处,接下来进行分析.......1.什么是共享锁和独占锁?共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。2.以CountDownLatch为进行源码解析①首先newCountDownLatch(count),会创建一个Sync类,并
hanna22
·
2023-04-11 05:43
juc
java
JUC
并发编程第十三篇,AQS的作用与体系结构
JUC
并发编程第十三篇,AQS的作用与体系结构一、AQS是什么?二、AQS在
JUC
中的地位与作用三、AQS体系结构一、AQS是什么?
安东子丶
·
2023-04-11 05:12
JUC并发编程
java
jvm
JUC并发编程
AQS
JUC
并发编程高级篇第七章之AQS(读写锁的优化实践)
文章目录1、AQS简介1.1、什么是AQS1.2、AQS能干嘛2、AQS的源码深度讲解和分析2.1、ReentrantLock的基本架构2.2、lock()3、整个ReentrantLock的加锁过程,可以分为三个阶1、AQS简介1.1、什么是AQS主要用于解决锁分配给"谁"的问题体就是一个抽象的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态比如常用的lock.u
爱吃糖的靓仔
·
2023-04-11 05:11
java
开发语言
Node多进程服务模型代码实践
引子提到Node多进程管理,大家肯定会想到PM2,Forever,Egg等相关项目,这篇文章的目的并不是进行
源码解读
,而是通过代码实践的方式帮助大家快速理解多进程管理的原理。
东方睡衣
·
2023-04-11 00:13
javascript
前端
html
并发——深入理解JMM&并发三大特性1【2023】
JUC
本质同步、互斥,分工无锁、有锁JMM三个角度去分析:java层面、jvm层面、硬件层面并发、并行清楚并发的三大特性:可见性、原子性、有序性并发可见性:mesiJMM:抽象概念、线程之间怎么交互的判断条件
Comus_j
·
2023-04-10 21:42
【2023】
并发
开发语言
Semaphore浅析
文章目录前言1、简介及应用2、源码分析1.构造方法2.acquire方法3.doAcquireSharedInterruptibly方法4.release方法前言在
JUC
包下,有三个控制并发的工具类Semaphore
雅俗共赏zyyyyyy
·
2023-04-10 19:10
学习总结
java
开发语言
后端
阻塞队列
1.2
JUC
阻塞队列的存取方法常用的存取方法都是来自于
JUC
包下的Bl
llp1110
·
2023-04-10 13:36
java
jvm
数据结构
阻塞队列
1.2
JUC
阻塞队列的存取方法常用的存取方法都是来自于
JUC
包下的Blo
llp1110
·
2023-04-10 13:59
并发编程
java
jvm
开发语言
PostgreSQL
源码解读
(120)- MVCC#5(获取事务号-主逻辑)
本节介绍了PostgreSQL获取事务号XID的逻辑,主要解析了函数AssignTransactionId的实现逻辑。一、数据结构静态变量当前事务状态CurrentTransactionState/**CurrentTransactionStatealwayspointstothecurrenttransactionstate*block.ItwillpointtoTopTransactionSt
cuichao1900
·
2023-04-10 09:09
数据库
PostgreSQL
源码解读
(83)- 查询语句#68(PortalStart函数)
本节介绍了PortalStart函数,该函数在create_simple_query中被调用,用于执行前初始化portal结构体中的相关信息。一、数据结构Portal包括场景PortalStrategy枚举定义/PortalStatus状态定义/PortalData结构体.Portal是PortalData结构体指针,详见代码注释./**Wehaveseveralexecutionstrategi
cuichao1900
·
2023-04-10 09:38
数据库
数据结构与算法
ReentrantLock
源码解读
探究实现原理
前言当我们遇到应用层面的性能瓶颈时,第一想法就是是否可拆分成多个任务,使用多线程来并行处理.而伴随着多线程而来的安全问题,我们可以使用synchronized关键字或者Lock实现类来解决.两种锁的用法都不复杂,但却一直不了解它们的实现原理.synchronized关键字是JVM底层实现的,不好探究,于是开始探究Lock的实现类ReentrantLock.话不多说,我们直接看ReentrantLo
优乐美奥利奥
·
2023-04-10 07:24
Cocos Creator
源码解读
:siblingIndex 与 zIndex
普天同庆来了来了,《
源码解读
》系列文章终于又来了!温馨提醒本文包含大段引擎源码,使用大屏设备阅读体验更佳!HiThere!
文弱书生陈皮皮
·
2023-04-10 07:33
go进阶原理
goroutinechanselectsyncMutexRWMutexWaitGroupContextOncePoolAtomic调度模型GMP模型调度原理网络轮询器系统监控内存管理内存分配GC栈内存
源码解读
魏大东ooo
·
2023-04-10 04:32
2.3、
juc
锁-信号量Semaphore
1、使用场景:1、共享资源只有两个,线程却有3个2、我们要下载很多图片,并发异步进行,每个下载都会开辟一个新线程,可是我们又担心太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程数。3、我们工作中遇到的各种池化资源,例如连接池、对象池、线程池等等。其中,你可能最熟悉数据库连接池,在同一时刻,一定是允许多个线程同时使用连接池的,当然,每个连接在被释放前,是不允许其他线程使用的。
七离_82cd
·
2023-04-10 03:17
JUC
之CountDownLatch与CyclicBarrier
1.前言在java.util.concurrent包中为我们提供了很多的线程同步工具类,例如CountDownLatch与CyclicBarrier,那么它们主要的用途是什么呢?且看后续分析。2.CountDownLatch2.1什么是CountDownLatchCountDownLatch,顾名思义,这是一个带计数器的线程同步工具。我们来看官方解释:Asynchronizationaidthat
fkjavaer
·
2023-04-10 02:56
java
java
Java原子类
JUC
并发包中的原子类都存放在java.util.concurrent.atomic类路径下,具体如下图所示:根据操作的目标数据类型,可以将
JUC
包中的原子类分为4类:基本原子类、数组原子类、原子引用类和字段更新原子类
代码的搬运工
·
2023-04-09 23:44
JUC
(二)
通过本文档你将学习到共享问题synchronized线程安全分析Monitorwait/notify线程状态转换活跃性Lock1共享带来的问题我们先从一个小故事开始讲起:话说500年前,老王有一个日记本,然后想租出去赚点钱,然后转给了小王。但是小王也不是24小时一直用这个日记本,有时候他会睡觉,有时他会出去玩。资本的力量,让老王萌生了一个天才的想法。再把这个日记本租一次,当然那时候是合法的,虽然现
木林森1615
·
2023-04-09 16:50
Android 系统源码初步阅读之调色板 Palette 的使用与
源码解读
Palette是什么(一)定义(二)可以提取的颜色(三)重要的几个类介绍二、Demo学习(一)效果(二)实现1.首页顶部的颜色2.首页下方item中名称的背景颜色与文本颜色3.详情页(三)代码仓库三、
源码解读
Nicholas_hzf
·
2023-04-09 16:14
Android
系统
Android
学习
系统源码
代码学习
Android
Palette
调色盘
从源码角度,看 Java 是如何实现自己的 SPI 机制的?
获取精品学习资料扫描下方海报了解专栏详情本文来自于公众号源码笔记的投稿《Java工程师面试突击(第3季)》重磅升级,由原来的70讲增至160讲,内容扩充一倍多,升级部分内容请参见文末注:该源码分析对应JDK版本为1.81引言这是【源码笔记】的JDK
源码解读
的第一篇文章
石杉的架构笔记
·
2023-04-09 16:44
Java SPI机制分析(1),
源码解读
及如何保证线程安全
}if(configs==null){try{StringfullName=PREFIX+service.getName();if(loader==null)configs=ClassLoader.getSystemResources(fullName);elseconfigs=loader.getResources(fullName);}catch(IOExceptionx){fail(serv
m0_60549868
·
2023-04-09 16:11
程序员
后端
java
面试
Kafka 核心
源码解读
【五】--延迟操作模块
文章目录1TimingWheel:探究Kafka定时器背后的高效时间轮算法1.1时间轮简介1.2源码层级关系1.3时间轮各个类源码定义1.3.1TimerTask类1.3.2TimerTaskEntry类1.3.3TimerTaskList类1.3.4TimingWheel类1.4总结2DelayedOperation:Broker是怎么延时处理请求的?2.1Timer接口及SystemTimer
-出发-
·
2023-04-09 16:07
kafka
kafka
java
分布式
Kafka 核心
源码解读
【六】--副本管理模块
文章目录1AbstractFetcherThread:拉取消息分几步?1.1课前案例1.2抽象基类:AbstractFetcherThread1.2.1类定义及字段1.2.2分区读取状态1.2.3重要方法1.3总结2ReplicaFetcherThread:Follower如何拉取Leader消息?2.1AbstractFetcherThread类:doWork方法2.2子类:ReplicaFet
-出发-
·
2023-04-09 16:59
kafka
kafka
大数据
云原生
你希望你在70岁是什么样子?——读《人生由我》有感
JUC
O想象一下,当你到了70岁时,你的生活会是什么样子?是和大多数人一样每天看电视、打麻将、抱怨家长里短?还是,还是70岁其实有其他可能?比如,成为一个有着成功事业的模特?
是凯莉彭
·
2023-04-09 15:57
java
juc
多线程自增, LongAdder 对象,比 AtomicLong 性能更好
多线程自增在多线程环境下,如何解决变量的内存不可见问题以及线程安全问题。LongAdder如何实现自增实现原理呢?能和你相遇,除了幸运,我想不出别的词,而被爱,则是荣幸volatile解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。如果是count++操作,使用如下类实现:AtomicIntegercount=newAtomicInteger
洪宏鸿
·
2023-04-09 12:16
java基础
java
算法
自增
LongAddr
AtomicInteger
MyBatis
源码解读
9 种设计模式,真是太有用了~
点击上方“程序IT圈”,选择“置顶公众号”每天早晨8点50分,准点开车打卡来源:crazyant|crazyant.net/2022.html虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlS
程序IT圈
·
2023-04-09 09:03
设计模式
java
mybatis
spring
ehcache
JUC
多线程:ThreadLocal 原理总结
1、什么是ThreadLocal:ThreadLocal提供了线程内部的局部变量,当在多线程环境中使用ThreadLocal维护变量时,会为每个线程生成该变量的副本,每个线程只操作自己线程中的变量副本,不同线程间的数据相互隔离、互不影响,从而保证了线程的安全。ThreadLocal适用于无状态,副本变量独立后不影响业务逻辑的高并发场景,如果业务逻辑强依赖于变量副本,则不适合用ThreadLocal
张维鹏
·
2023-04-09 07:39
Java核心编程技术
java
面试
ThreadLocal
多线程
基于Java+SpringBoot+Vue在线培训考试系统设计与实现
可提供微服务项目搭建与毕业项目实战✌博主作品:《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等
源码解读
卡布奇诺-海晨
·
2023-04-09 03:16
Java项目案例
java
spring
boot
mybatis
1.线程池相关
线程池相关1.
JUC
是什么2.进程/线程进程/线程是什么?3.为什么需要使用线程池?4.一般项目中哪里会用到线程池?5.线程池的好处?6.线程池创建方式7.线程池如何实现线程复用的?
孙瑞_COME_ON
·
2023-04-09 03:43
JUC
java
开发语言
多线程相关
https://www.cnblogs.com/fengmin/p/5841014.html参考
源码解读
[图片上传中...
ruiying
·
2023-04-09 02:15
短链生成哪家强 新浪微博很张扬 t.cn
key=czUl8g
JuC
D/tcn_url?url='.urlencode($url);$sh
喜欢萌妹子的少年
·
2023-04-08 23:13
2020-05-11 Java入坑指南2.0(B站Up主CodeSheep搬运)
语言语言基础:基础语法面向对象接口容器异常泛型反射注解I/O图形化JVM:类加载机制字节码执行机制JVM内存模型GC垃圾回收JVM性能监控与故障定位JVM调优并发/多线程:并发编程基础线程池锁并发容器原子类
JUC
柒李香
·
2023-04-08 21:03
ReentrantLock
源码解读
前言写这篇文章之前,还是先安利一本书:《java并发编程的艺术》。这本书对锁的实现的很多细节都解释的还是很清楚的,加上自己配合源码进行理解,读懂ReentrantLock这个类的实现应该不是那么困难。本文只对独占模式进行分析。一行行分析ReentrantLock源码直接步入正题,先贴一段代码看看如何使用ReentrantLock:publicclassReentrantLockTest{publi
marsjhe
·
2023-04-08 18:06
突击并发编程
JUC
系列-ReentrantReadWriteLock
突击并发编程
JUC
系列演示代码地址:https://github.com/mtcarpenter/JavaTutorial本章节将学习ReentrantReadWriteLock(读写锁),ReadWriteLock
山间木匠1
·
2023-04-08 14:42
【
JUC
并发】fork/join
Fork/Join原理(需要继承(有返回值)RecursiveTask或者(没返回值)RecursiveAction,重写compute()方法)将大任务拆分成小任务,先实现compute()方法。首先判断任务是否足够小,如果足够小就直接执行任务。如果不够小,就必须分割成两个子任务,每个子任务调用fork()方法时,又会进入compute()方法,递归下去。工作窃取算法异步调用fork()方法/*
赵陌陌丶
·
2023-04-08 13:20
JUC并发
java
并发编程
JUC
并发编程---学习笔记
什么是
JUC
java.util工具包、包、分类业务:普通的线程代码ThreadRunnable没有返回值、效率相比入Callable相对较低!
开膛手joker
·
2023-04-08 13:11
java
JUC
高并发编程(16) -- Fork/Join 框架
JUC
高并发编程十二、Fork/Join框架12.1)Fork/Join框架简介Fork/Join可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。
姜皓
·
2023-04-08 13:08
高并发
java
Spark框架中分布式K-Means算法
源码解读
Spark中的K-Means实现采用K-Means||模式。1.何为K-Means||?K-Means||是解决K-Means++算法在大数据量情况下,初始化速度太慢而产生的一种算法。主要思路是改变每次遍历时候的取样规则。并非按照K-Means++算法,初始化每次遍历只获取一个样本,而是每次获取K个样本,重复该取样操作O(logn)次(n是样本的个数),然后再将这些抽样出来的样本聚类出K个点,最后
心之若涯
·
2023-04-08 13:51
JUC
多线程:Atomic原子类与CAS原理
一、Atomic原子类的原理:Atomic原子操作类是基于无锁CAS+volatile实现的,并且类中的所有方法都使用final修饰,进一步保证线程安全。而CAS算法的具体实现方式在于Unsafe类中,Unsafe类的所有方法都是native修饰的,也就是说所有方法都是直接调用操作系统底层资源进行执行相应任务。Atomic使用乐观策略,每次操作时都假设没有冲突发生,并采用volatile配合CAS
张维鹏
·
2023-04-08 10:19
Java核心编程技术
java
面试
JUC
Atomic原子类
CAS
JUC
-并发编程17-线程池深入分析-ThreadPoolExecutor-1
1、简介ThreadPoolExecutor的构造方法是创建线程池的入口,虽然比较简单,但是信息量很大,由此也能引发一系列的问题,同样地,这也是面试中经常被问到的问题,下面只是列举了一部分关于ThreadPoolExecutor构造方法的问题。2、属性说明2.1corePoolSize除非设置了allowCoreThreadTimeOut,否则核心池大小是保持活动状态(并且不允许超时等)的最小工作
续亮~
·
2023-04-08 09:23
并发编程
数据结构与算法
java基础
java
并发编程
JUC
-并发编程16-线程池深入分析-体系结构
1、简介java的线程池是比较常用的在并发编程里面。对线程池的源码做深入研究不仅能提高对java整个并发编程的理解,也能提高自己在面试中的表现,增加被录取的可能性。2、体系结构上图列举了线程池中非常重要的接口和类:Executor,线程池顶级接口ExecutorService,线程池次级接口,对Executor的补充,做了一下扩展ScheduleExecutorService,对ExecutorS
续亮~
·
2023-04-08 09:22
并发编程
数据结构与算法
并发编程
java
源码解读
:PolarDB-X 中的窗口函数
为什么需要窗口函数?Window是一个常用且重要的功能,PolarDB-X作为一款分布式数据库,自然也支持了窗口函数。对于业务开发来讲,其可以大大简化业务SQL的设计,比如分组排序功能,如果支持窗口函数,则只需使用排序函数即可,例子如下。例:我现在有一张表,包含学生姓名,学生班级,学生成绩,现在请你帮我写一条SQL,实现对每个班级内的同学进行排名的需求?有窗口函数时:SELECTstudent_n
阿里云云栖号
·
2023-04-08 08:11
云栖号技术分享
数据库
java
sql
云计算
阿里云
上一页
42
43
44
45
46
47
48
49
下一页
按字母分类:
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
其他