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源码系列
spring
源码系列
——毁三观的spring自动注入(上)
我是子路,一个靠Java吃饭的男人。前面我用三篇文章介绍了Spring的循环引用,今天我再来跟大家讲讲你可能真的不了解的Spring自动注入。正文要是提到spring的自动注入,作为一个java程序员肯定自信无比了解;但是笔者要说的自动注入可能会和你理解有很大出入。首先搞明白什么是自动注入,自动注入也可以叫做自动装配(springboot也有一个自动装配但是我认为翻译的不够准确,springboo
子路玩Java
·
2022-02-08 17:01
1.
JUC
线程高级-volatile关键字与内存可见性
1.多线程操作共享变量引发问题我们通过下面代码来分析下内存可见性问题:packagecom.pyy.
juc
;publicclassTestVolatile{publicstaticvoidmain(String
一行代码一首诗
·
2022-02-08 12:39
JUC
--CLH同步队列
2018-10-01推荐原文死磕Java并发AQS简介中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。CLH同步队列是一个FIFO双向队列,AQS依赖它来完成同步状态的管理,当前线程如果获取同步状态失败时,AQS则会将当前线程已经等待状态等信息构造成一个节点(Node)并将其加入到CLH同步队列,同时会阻塞当前线程,当同步状态释放时,会把首节点唤醒(公平锁),使其再次尝试获取同
vsu
·
2022-02-07 18:08
Java
JUC
PriorityBlockingQueue解析
无界阻塞队列PriorityBlockingQueue介绍PriorityBlockingQueue是一个带有优先级的无界阻塞队列,每次出队返回的都是优先级最高或者最低的元素。在内部是使用平衡二叉树堆实现,所以遍历元素不保证有序。默认使用对象的compareTo方法进行比较,如果需要自定义比较规则可以自定义comparators。该类图可以看到,PriorityBlockingQueue内部有一个
·
2022-02-07 16:46
重温java知识(三十九、
JUC
并发编程之五:线程锁之CompletableFuture)
CompletableFuture可以简化异步编程的复杂性,又可以结合函数式编程模式利用回调的方式进行意不处理计算操作。1、使用CompletableFuture模拟炮兵听从命令打炮场景的例子:packagecom.mydemo;importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.TimeUnit;publ
宇智波幽助
·
2022-02-07 15:12
Java
java
MyBatis
源码系列
--4.mybatis源码解析(下)
接着上一篇分析源码,从编程式的demo入手InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);SqlSessionsession=sq
威少JAVA
·
2022-02-07 08:12
spring
源码系列
——毁三观的spring自动注入(下)
接上篇文章:spring
源码系列
——毁三观的spring自动注入(上)正文我们可以写一个例子来证明一下:xml配置了A和B都是自动装配模型为bytype讲道理要实现autowireMode=2A.javapublicclassA
子路玩Java
·
2022-02-07 01:21
AQS(AbstractQueuedSynchronizer)源码解析
前言java.util.concurrent包(之后简称
JUC
包)中,提供了大量的同步与并发的工具类,是多线程编程的“利器”。
一点点简单
·
2022-02-06 18:08
多线程---详解各种锁和AQS原理
详解各种锁与锁的使用1.synchronized可重入同一个线程不同线程2.volatile保证线程可见性禁止指令重排序查看结果3.锁优化锁细化锁粗化锁对象4.CAS(无锁优化,自旋)5.
JUC
同步锁0
意田天
·
2022-02-06 16:25
多线程与高并发
多线程
并发编程
Java多线程同步-锁
Android开发,所以在针对锁的底层实现时,会对比x86和ARM架构下对应的实现,如有问题请及时指出;1.Java锁Lock出现之前,Java使用synchronized实现多线程同步,JDK5之后,
JUC
f6ada82330c4
·
2022-02-06 14:29
MyBatis
源码系列
--3.mybatis源码解析(上)
分析源码,从编程式的demo入手InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);SqlSessionsession=sqlSess
威少JAVA
·
2022-02-06 11:29
JUC
学习笔记之CountDownLatch源码初步理解
注:文中代码的解释基本上都以注释的形式和代码写在一起CountDownLatch是并发环境中常用的计数组件,也是基于AQS实现的。主要的方法有两个,countDown和await,实现了AQS模板方法的tryReleaseShared方法来完成countDown计数减的过程,实现了AQS模板方法的tryAcquireShared方法来实现await阻塞等待功能。countDown方法countDo
Moine0828
·
2022-02-05 06:09
Linux目录规范和含义
https://www.cnblogs.com/gg
juc
heng/archive/2012/08/20/2647788.htmlhttps://blog.csdn.net/l740450789/article
ivan_cloud
·
2022-02-05 03:03
9
JUC
之AQS
1️⃣简介1AQS概念:AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看做是一个可以用来实现锁以及其他需要同步功能的框架。这里简称该类为AQS。AQS的使用依靠继承来完成,子类通过继承自AQS并实现所需的方法来管理同步状态。例如ReentrantLock,CountDownLatch等.2底层数据结构:AQS底层是使用的双向链表实现的如下图所示双向链表是队列的
十丈_红尘
·
2022-02-04 19:21
【
JUC
】线程池ThreadPoolExecutor
样例及原理ThreadPoolExecutorexecutor=newThreadPoolExecutor(2,//核心线程数4,//最大线程数5,TimeUnit.SECONDS,//最大线程的回收时间newArrayBlockingQueue{//自定义拒绝策略});@Testpublicvoidtest(){executor.execute(()->{//交给线程池执行的任务});Futur
·
2022-02-04 15:51
java源码分析
【
JUC
】可回调任务FutureTask原理
前言上一篇观察ThreadPoolExecutor的submit方法的时候,发现了它是靠FutureTask实现结果回调的:publicFuturesubmit(Callabletask){if(task==null)thrownewNullPointerException();//##声明一个可回调任务,本质是一个FutureTaskRunnableFutureftask=newTaskFor(
·
2022-02-04 15:46
java源码分析
07-HashMap 源码解析(集合)
注:
源码系列
文章主要是对某付费专栏的总结记录。如有侵权,请联系删除。整体架构HashMap底层的数据结构主要是:数组+链表+红黑树。
xinxisimple
·
2022-02-03 19:02
突击并发编程
JUC
系列-阻塞队列 BlockingQueue
突击并发编程
JUC
系列演示代码地址:https://github.com/mtcarpenter/JavaTutorial什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列
山间木匠1
·
2022-02-03 04:06
Java
JUC
ConcurrentLinkedQueue解析
ConcurrentLinkedQueue原理探究介绍ConcurrentLinkedQueue是线程安全的无界非阻塞队列,底层使用单向链表实现,对于入队和出队操作使用CAS实现线程安全。ConcurrentLinkedQueue内部的队列使用单向链表方式实现,其中有两个volatile类型的Node节点分别用来存放队列的头、尾节点。下面无参构造函数中可以知道,默认头尾节点都是指向item为nul
·
2022-01-31 20:18
【
JUC
】ArrayBlockingQueue之Condition应用
阻塞队列是一种生产者、消费者模式的应用;ArrayBlockingQueue从源码角度来看,其本质是condition的一种应用一、样例及原理//==1.队列初始化ArrayBlockingQueuequeue=newArrayBlockingQueue(100);//==2.入队ThreadthreadA=newThread(()->{try{queue.put(newObject());}ca
·
2022-01-29 20:41
java源码分析
【
JUC
】CountDownLatch共享节点队列
一、样例和原理常规使用inti=3;//==1.初始化CountDownLatchcd=newCountDownLatch(i);while(i>0){newThread(()->{try{TimeUnit.SECONDS.sleep(1L);System.out.println("Biz-Threadisover");}catch(InterruptedExceptione){e.printSt
·
2022-01-29 19:38
java源码分析
Java
JUC
ReentrantReadWriteLock解析
读写锁ReentrantReadWriteLock原理介绍ReentrantReadWriteLock和ReentrantLock的区别是,ReentrantLock是独占锁,同一时间只能有一个线程获取锁,但在实际中更多的是读多写少的情况,显然ReentrantLock满足不了该情况,而ReentrantReadWriteLock采用了读写分离的策略,可以允许多个线程同时进行读取。从该类图可以看到
·
2022-01-29 00:31
【
JUC
】两图理解Condition的等待、唤醒逻辑
使用样例ThreadAThreadBThreadCThreadD-(插队专业户)Locklock=newReentrantLock();lock.lock();//ThreadA阻塞在这里lock.newCondition().await();//dobusiness..lock.unlock();//————无忧无虑的分割线————lock.lock();//ThreadB进入这里,触发sign
·
2022-01-28 12:31
java后端源码分析
Java
JUC
LinkedBlockingQueue解析
阻塞队列LinkedBlockingQueue介绍上篇介绍了使用CAS算法实现的非阻塞队列ConcurrentLinkedQueue,本篇介绍的是使用独占锁实现的阻塞队列LinkedBlockingQueue。该类图可以看到LinkedBlockingQueue也是使用单向链表实现的,其中包含headNode,lastNode,用来存放头尾节点;并且还有一个初始值为0的原子变量count,用来记录
·
2022-01-27 09:00
JUC
并发编程
JUC
进程和线程进程:一个程序,QQ,微信,一个进程至少包含一个线程,可以有多个线程java默认有2个线程。
allenn33
·
2022-01-20 11:57
Java
JUC
LockSupport概述
LockSupport工具类LockSupport是rt.jar包中的一个工具类,它的主要作用就是挂起和唤醒线程,并且该类是创建锁和其它同步类的基础。LockSupport类和每个使用它的线程都会关联一个许可证,在默认情况下调用LockSupport类的方法是不持有许可证的。LockSupport是使用Unsafe类实现的。下面介绍一下LockSupport中的主要方法。voidpark()如果在
·
2022-01-19 17:44
javalockjuc
线程池如何观测?这个方案让你对线程池的运行情况了如指掌!
写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在
juc
包,这是大名鼎鼎的DougLea老爷子的杰作,评价一个程序员Java水平怎么样,一定程度上看他对
juc
包下的一些技术掌握的怎么样,这也是面试中的
·
2022-01-17 16:54
开源软件java线程池监控
线程池如何观测?这个方案让你对线程池的运行情况了如指掌!
写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在
juc
包,这是大名鼎鼎的DougLea老爷子的杰作,评价一个程序员Java水平怎么样,一定程度上看他对
juc
包下的一些技术掌握的怎么样,这也是面试中的
·
2022-01-17 16:18
开源软件java线程池监控
线程池如何观测?这个方案让你对线程池的运行情况了如指掌!
写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在
juc
包,这是大名鼎鼎的DougLea老爷子的杰作,评价一个程序员Java水平怎么样,一定程度上看他对
juc
包下的一些技术掌握的怎么样,这也是面试中的
铂赛东
·
2022-01-17 16:00
开源软件
java
线程池
监控
JUC
中 4 个常用的并发工具类
JUC
就是java.util.concurrent包,这个包俗称
JUC
,里面都是解决并发问题的一些东西。
·
2022-01-17 10:37
juc
Java
JUC
CopyOnWriteArrayList 解析
CopyOnWriteArrayList原理解析介绍在Java并发包中的并发List只有CopyOnWriteArrayList,CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的,也就是使用了写时复制策略。在CopyOnWriteArrayList的类图中,每个CopyOnWriteArrayList对象里面有
·
2022-01-11 17:33
Java 并发包原子操作类解析
Java并发包原子操作类解析前言
JUC
包中提供了一些列原子操作类,这些类都是使用非阻塞算法CAS实现的,相比使用锁实现原子性操作在性能上有较大提高。
·
2022-01-05 16:11
JUC
之多线程锁问题
多线程锁8种问题锁状态:该部分全部围绕的是以下内容并结合相应的例子:synchronized实现同步的基础:Java中每个对象都可以作为锁。具体表现为以下三种形式:(之前只是简单的了解)对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放
xbhog
·
2022-01-05 15:00
Java
JUC
ThreadLocalRandom类解析
ThreadLocalRandom类解析前言ThreadLocalRandom类是JDK7在
JUC
包下新增的随机数生成器,它主要解决了Random类在多线程下的不足。
·
2022-01-03 15:39
juc读书笔记
详解
JUC
并发编程之锁
目录1、自旋锁和自适应锁2、轻量级锁和重量级锁轻量级锁加锁过程轻量级锁解锁过程3、偏向锁4、可重入锁和不可重入锁5、悲观锁和乐观锁6、公平锁和非公平锁7、共享锁和独占锁8、可中断锁和不可中断锁总结:当多个线程访问一个对象时,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的
·
2021-12-31 17:19
JUC
之线程间的通信
调用资源类的操作方法线程通信的实现例子:两个线程,实现对一个初始变量为0进行操作,一个线程对其+1,一个线程对其-1,使得变量结果不改变使用Synchronized实现的线程通信:packagecom.
JUC
xbhog
·
2021-12-29 21:00
JAVA并发编程——AbstractQueuedSynchronizer之AQS概念和源码阅读
1.AQS是什么2.能干什么3.AQS为什么是
JUC
内容中最重要的基石4.AQS内部体系架构5.从我们的ReentrantLock开始解读AQS6.总结1.AQS是什么AQS————全称AbstractQueuedSynchronizer
·
2021-12-29 17:14
java并发编程aqs
「Vue源码学习」简单讲一讲keep-alive的原理吧
回想起来,我一开始写作的时候就是写Vue
源码系列
的,都收录在我的掘金专栏Vue源码解析之中:「Vue源码学习(一)」你不知道的-数据响应式原理Vue源码学习(二)」你不知道的-模板编译原理「Vue源码学习
·
2021-12-21 10:13
vue.js源码面试
node 服务端渲染
简介nodejs搭建多页面服务端渲染技术点koa搭建服务koa-router创建页面路由nun
juc
ks模板引擎组合htmlwebpack打包多页面node端异步请求服务端日志打印运行npminpmstart
·
2021-12-06 11:03
前端html5node.js
并发编程系列之掌握原子类使用
并发编程系列之掌握原子类使用学习目标:知道什么是原子类和用途掌握
juc
中原子类使用了解原子类的实现原理1、什么是原子类?原子类是jdk的
juc
包中提供的对单个变量进行无锁、线程安全修改的工具类。
smileNicky
·
2021-12-04 20:49
并发编程
java
开发语言
后端
一篇文章带你了解如何正确使用java线程池
3、Java线程池的工作原理4、掌握
JUC
线程池API总结1、线程是不是越多越好?在学习多线程之前,读者可能会有疑问?如果单线程跑得太慢,那么是否就能多创建多个线程来跑任务?
·
2021-12-04 16:37
聊聊并发(六)——CAS算法
一、原子类1、CAS算法强烈建议读者看这篇之前,先看这篇初识
JUC
的前两节,对原子性,原子变量,内存可见性有一个初步认识。
Craftsman-L
·
2021-12-02 09:00
打通JAVA与内核系列之一ReentrantLock锁的实现原理
简介:写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(
JUC
锁)。
·
2021-11-29 10:37
javaios
《重学Java高并发》Sempahore的使用场景与常见误区
JUC
,java并发框架也是面试中的常客,而Se
中间件兴趣圈
·
2021-11-28 22:00
【程序员翻身计划】Java高性能编程第一章-Java多线程概述
目标重点:线程安全的概念线程通信的方式与应用reactor线程模型线程数量的优化jdk常用命令Netty框架的作用难点java运行的原理同步关键字的原理AQS的抽象
JUC
的源码网络编程的概念GC机制class
刘墨泽
·
2021-11-28 16:00
JUC
并发编程与源码分析(4)
JUC
并发编程与源码分析一、CAS1.1没有CAS之前多线程环境不使用原子类保证线程安全多线程环境使用原子类保证线程安全(基本数据类型)1.2是什么?
古月日月衣羊
·
2021-11-27 20:27
JUC
juc
带着问题读 TiDB 源码:Hive 元数据使用 TiDB 启动报错
《带着问题读
源码系列
》-开篇在TiDB社区活跃较久的伙伴们应该知道,过去我们有被称为24章经的《TiDB源码阅读系列文章》,也有面向TiKV的《TiKV源码解析系列文章》以及《DeepDiveTiKV系列文章
·
2021-11-26 12:35
数据库
Vue CLI 2.x本地开启https运行并代理后端https接口
/your-pro
juc
t/build&&mkdircert#进入cert目录cdcert#使用openssl生成私钥opensslgenrsa-outprivate.key1024#使用上面生成的私钥生成证书其中的
·
2021-11-23 18:19
Java并发
JUC
——synchronized和Lock
synchronizedsynchronized作用原子性:synchronized保证语句块内操作是原子的。可见性:synchronized保证可见性(通过“在执行unlock之前,必须先把此变量同步回主内存”实现)。有序性:synchronized保证有序性(通过“一个变量在同一时刻只允许一条线程对其进行lock操作”)。synchronized的三种应用方式1、修饰实例方法,作用于当前实例加
小波同学
·
2021-11-23 11:13
Java 并发编程之ForkJoin框架
1、什么是ForkJoin框架2、ForkJoinTask3、ForkJoinPool4、打印斐波那契数列5、ForkJoin归并排序总结1、什么是ForkJoin框架ForkJoin框架是java的
JUC
·
2021-11-22 18:58
上一页
43
44
45
46
47
48
49
50
下一页
按字母分类:
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
其他