【线程之Callable、Future 和FutureTask使用及源码分析】教程文章相关的互联网学习教程文章

【HikariCP源码分析】从FastList看HikariCP为什么更快?

从FastList看HikariCP为什么更快?HikariCP之所以快得益于:1 、优化并精简字节码2 、使用FastList替代ArrayList3 、ConcurrentBag:更好的并发集合类实现本篇只分析FastList。我们从被引用处着手,PoolEntry构造函数中初始化FastList,使用了new FastList<>(Statement.class, 16);PoolEntry(final Connection connection, final PoolBase pool, final boolean isReadOnly, final boolean isAutoCommit){this.connection = connectio...

spring5源码分析系列(六)——IOC容器的初始化(四)【代码】【图】

前言:上一篇讲到了解析子元素,此篇我们继续后面的内容。 (15)解析过后的BeanDefinition在IOC容器中的注册 接下来分析DefaultBeanDefinitionDocumentReader对Bean定义转换的Document对象解析的流程中,在其parseDefaultElement方法中完成对Document对象的解析后得到封装BeanDefinition的BeanDefinitionHold对象, 然后调用BeanDefinitionReaderUtils的registerBeanDefinition方法向IOC容器注册解析的Bean,BeanDefinitionReaderUt...

ArrayList 和 LinkedList 源码分析【代码】【图】

List 表示的就是线性表,是具有相同特性的数据元素的有限序列。它主要有两种存储结构,顺序存储和链式存储,分别对应着 ArrayList 和 LinkedList 的实现,接下来以 jdk7 代码为例,对这两种实现的核心源码进行分析。 1. ArrayList 源码分析 ArrayList 是基于数组实现的可变大小的集合,底层是一个 Object[] 数组,可存储包括 null 在内的所有元素,默认容量为 10。元素的新增和删除,本质就是数组元素的移动。 1.1 add 操作 ArrayL...

死磕以太坊源码分析之rlpx协议【代码】

死磕以太坊源码分析之rlpx协议本文主要参考自eth官方文档:rlpx协议 符号X || Y:表示X和Y的串联 X ^ Y: X和Y按位异或 X[:N]:X的前N个字节 [X, Y, Z, ...]:[X, Y, Z, ...]的RLP递归编码 keccak256(MESSAGE):以太坊使用的keccak256哈希算法 ecies.encrypt(PUBKEY, MESSAGE, AUTHDATA):RLPx使用的非对称身份验证加密函数 AUTHDATA是身份认证的数据,并非密文的一部分 但是AUTHDATA会在生成消息tag前,写入HMAC-256哈希函...

uwsgi源码分析【代码】

目录摘要 源码分析程序入口 uwsgi_setup()函数的主要代码 uwsgi_start()函数的主要代码 uwsgi_run()函数的主要代码 simple_loop()函数的主要代码值得关注的一些东西在C/C++中嵌入Python时,C/C++代码中开启的线程 与 Python代码中开启的线程的关系 插件化开发 并发模型参考文档摘要[TOC]本文在CentOS Linux release 7.3.1611 (Core)、uwsgi 2.0.15、Python 2.7.5下测试通过。 当使用uwsgi作为Python的WSGI Server的时候,本质上就是...

Condition用例、源码分析详解(上)【代码】【图】

在前面学习 synchronized 的时候,有讲到 wait/notify 的基本使用,结合 synchronized 可以实现对线程的通信。那么这个时候我就在思考了,既然 J.U.C 里面提供了锁的实现机制,那 J.U.C 里面有没有提供类似的线程通信的工具呢? 于是找阿找,发现了一个 Condition 工具类。Condition 是一个多线程协调通信的工具类,可以让某些线程一起等待某个条件(condition),只有满足条件时,线程才会被唤醒。Condition 的基本使用ConditionW...

spring源码分析6: ApplicationContext的初始化与BeanDefinition的搜集入库【图】

先前几篇都是概念的讲解:回顾下BeanDefinition 是物料 Bean是成品 BeanFactory是仓库,存储物料与成品 ApplicationContext初始化搜集物料入库,触发生产线,取出物料生产Bean本文研究springboot环境下,ApplicationContext的初始化, 多是处理注解形式的Bean. 重要组件 1.PostProcessorRegistrationDelegate: 代理执行post processors的工具类 postProcessor分为两种:BeanFactoryPostProcessor: 发生在BeanDefinition搜集入库阶段 B...

MyBatis源码分析(四):SQL执行过程分析【代码】

根据上一节,Mybatis初始化之后,利用sqlSession(defaultSqlSession)的getMapper方法获取Mapper接口1 @Override 2 public <T> T getMapper(Class<T> type) { 3 return configuration.<T>getMapper(type, this); 4 }而调用configuration对象的getMapper方法1 public <T> T getMapper(Class<T> type, SqlSession sqlSession) { 2 return mapperRegistry.getMapper(type, sqlSession); 3 }再次调用mapperRegister,注册mapper...

迅为4412开发板源码分析之协处理器【图】

本文分析 4412 的 uboot 源码,结合 uboot 源码来分析 uboot 完成了哪些工作。分析的源码文件是“cpu/arm_cortexa9/start.S”文件。 1 源码分析 .globl _start :globl 类似 C 语言中的 Extern,类似定义一个全局函数_start,外部可以访问_start,_start 是整个 uboot 的入口,第一行代码就是从这里开始执行的。_start: b reset :_start:表示进入到“全局函数”_start 的主体结构; b reset 表示跳到 reset。类似 c 语言中的 go...

mybatis源码分析(3)-----SqlSessionHolder作用【代码】

static SqlSession getSqlSession(SqlSessionFactory sessionFactory, ExecutorType executorType, PersistenceExceptionTranslator exceptionTranslator) {   //从从前线程的threadLocal 中获取sqlSessionHolderSqlSessionHolder holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);SqlSession session = sessionHolder(executorType, holder);   // 判断当前sqlSessionHolder 中是...

hello2 源码分析【代码】

1、GreetingServlet.java(问候页面):/*** Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.** You may not modify, use, reproduce, or distribute this software except in* compliance with the terms of the License at:* https://github.com/javaee/tutorial-examples/LICENSE.txt*/ package javaeetutorial.hello2; //指定包名//导入程序库,使之成为可用的单元 import java.io.IOException; ...

JVM源码分析之synchronized实现【图】

“365篇原创计划”第十二篇。 ? 今天呢!灯塔君跟大家讲: ? JVM源码分析之synchronized实现 ? ? java内部锁synchronized的出现,为多线程的并发执行提供了一个稳定的环境,有效的防止多个线程同时执行同一个逻辑,其实这篇文章应该写在JVM源码分析之Object.wait/notify实现机制之前,本文不会讲如何使用synchronized,以HotSpot1.7的虚拟机为例,对synchronized的实现进行深入分析。 synchronized的HotSpot实现依赖于对象头的Ma...

鸿蒙内核源码分析(内存主奴篇) | 紫禁城的主子和奴才如何相处? | 百篇博客分析HarmonyOS源码 | v10.03【图】

百万汉字注解 >> 精读内核源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新 gitee | github | csdn | coding ' rel='nofollow' target='_blank'>>百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,主流站点定期更新中 oschina | csdn | 掘金 | harmony ' rel='nofollow' target='_blank'>>主子和奴才请想一个问题,内核本身也是程序要在内存运行, 用户程序一样也要在内存运行,大家都在一...

Spring源码分析专题 —— IOC容器启动过程(上篇)【代码】【图】

声明 1.建议先阅读《Spring源码分析专题 —— 阅读指引》 2.强烈建议阅读过程中要参照调用过程图,每篇都其对应的调用过程图 3.写文不易,转载请标明出处前言 关于 IOC 容器启动的内容很多,我将分上中下三篇讲解,其中上篇相对简单,中篇最为复杂,请大家耐心阅读。上篇 - 主要是相关基础说明和找到分析入口 中篇 - 讲解定位、加载、注册的过程(实例化在依赖注入的章节再讲) 下篇 - 细节补充调用过程图 由于篇幅问题,此处我只放...

Flutter路由管理和页面参数的传递(源码分析)【代码】【图】

前言 上一篇 Flutter路由管理和页面参数的传递(获取&返回) 文章中我们讲述了这么用代码实现 Flutter 中页面参数的传递,这一篇我们用源码分析一下 Navigator 为什么可以进行页面参数传递。 从页面跳转入口的代码进行分析: Navigator.of(context).pushNamed('/route1');Navigator 的获取 Navigator 对应的 State 是 NavigatorState ,所以实际上我们需要获取的是 NavigatorState 。 class Navigator extends StatefulWidget {/**...