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
nginx-rtmp源码剖析
阿里中间件seata
源码剖析
六:TCC模式中2阶段提交实现
目录TM通知TC事务状态TC通知RM分支事务提交RM处理TC提交事务请求总结上篇文章中,我们以TCC模式的demo为例,讲解了seata中全局事务的开启。在这个demo中,TM作为一个全局事务的管理者,会依次调用订单服务、账户服务和库存服务,如果其中一个服务抛出异常,TM就会调用失败抛出异常,这时就会通知TC,进而TC会通知RM进行事务的回滚。如果TM没有异常,就会通知TC进行事务的commit,
jinjunzhu
·
2020-10-08 10:07
seata
Mybatis的SQL执行流程
源码剖析
概述源码就是能够被用来执行,生成机器能够识别的代码,通过开源源码,可以引用其功能。重要性1、mybatis中的sql执行,不仅要知道返回的结果是什么,还需要知道这结果是怎么来的,经过了怎样的处理,只有知道了这样的原理,碰到问题才能更好的知道问题出在那个环节。2、能更好的扩展应用程序,可以做到代码的复用,减少开发成本和时间。3、学习其中的设计思想能够在其他应用得已应用。步骤源码阅读,可以从测试用例着
browser123
·
2020-10-02 22:33
mybatis
源码分析
java
编程语言
Linux MMC 驱动子系统简述(
源码剖析
)
1.LinuxMMC驱动子系统块设备是Linux系统中的基础外设之一,而MMC/SD存储设备是一种典型的块设备。Linux内核设计了MMC子系统,用于管理MMC/SD设备。MMC子系统的框架结构如下图所示,其中corelayer根据MMC/SD设备协议标准实现了协议。cardlayer与Linux的块设备子系统对接,实现块设备驱动以及完成请求,具体协议经过corelayer的接口,最终通过host
hueyxu
·
2020-09-29 20:00
SpringBoot原理深入及
源码剖析
传统的Spring框架实现一个Web服务,需要导入各种依赖AR包,然后编写对应的XML配置文件等,相较而言,SpringBoot显得更加方便、快捷和高效。那么,SpringBoot究竟如何做到这些的呢?接下来分别针对SpringBoot框架的依赖管理、自动配置和执行流程进行深入分析依赖管理问题∶(1)为什么导入dependency时不需要指定版本?在SpringBoot入门程序中,项目pom.xm
雪砺青松
·
2020-09-29 00:22
spring
源码剖析
之spring bean循环依赖
springbean循环依赖springbean循环依赖应该是spring源码中比较难的一块知识了,下面我们结合代码还有时序图,来进行分析,看下spring是如何优雅的处理springbean的循环依赖的。什么是bean的循环依赖我们都知道spring的IOC和DI,它可以帮助我们创建对象,并且可以帮我们自动注入需要spring管理的对象。然后会存在一种这样的情况,在对象A中需要依赖B,而在对象B
一个快乐小码农
·
2020-09-19 10:16
spring
java
spring
Java并发学习笔记12 ThreadLocal
bilibili-Java并发学习笔记12ThreadLocal基于java1.8.0P43_ThreadLocal底层
源码剖析
与解读本质上,ThreadLocal是通过空间换时间,从而实现每个线程当中都会有一个变量的副本
morningcat2018
·
2020-09-17 13:18
Java多线程
GDAL
源码剖析
(十一)之OGR投影说明
一、简介本文参考英文地址:http://www.gdal.org/ogr/osr_tutorial.html。OGRSpatialReference类和OGRCoordinateTransformation类主要用来提供定义坐标系统(投影和水准面)和转换坐标。这两个类都基于OpenGIS的坐标转换说明,并且使用WellKnownText格式来进行表述坐标系统。一些关于OpenGIS坐标系统的资料,
weixin_33937913
·
2020-09-17 10:39
c/c++
python
数据库
centos7.5 安装流媒体服务器(nginx+rtmp,rtsp转rtmp,rtsp转m3u8) 直播海康摄像头视频
一,先下载安装nginx和
nginx-rtmp
编译依赖工具安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,则需要安装:yuminstallgcc-c++PCREpcre-devel
tjjingpan
·
2020-09-17 10:47
JDK1.7 HashMap
源码剖析
,循环链表是如何产生的
Map这样的KeyValue在软件开发中是非常经典的结构,常用于在内存中存放数据。众所周知HashMap底层是基于数组+链表组成的,不过在JDK1.7和1.8中具体实现稍有不同。今天我们只讲解JDK1.7版本的HashMap。1、HashMap的数据结构图是一个数组+链表结构2、HashMap成员变量/***Thedefaultinitialcapacity-MUSTbeapoweroftwo.*
掘客DIGGKR
·
2020-09-17 07:27
Java
HashMap
Apache Kylin 查询流程
源码剖析
一、Overview1.1、通过Kylin查询其中olap_model_6607769716595835175.json内容如下:{"version":"1.0","defaultSchema":"DEFAULT","schemas":[{"type":"custom","name":"DEFAULT","factory":"org.apache.kylin.query.schema.OLAPSc
ccllcaochong1
·
2020-09-17 04:56
kylin
从
源码剖析
useState的执行过程
长文预警,如果觉得前戏太长可直接从第三章开始看~本文基于React16.8.6进行讲解使用的示例代码:importReact,{useState}from'react'import'./App.css'exportdefaultfunctionApp(){const[count,setCount]=useState(0);const[name,setName]=useState('Star');/
weixin_33854644
·
2020-09-17 02:16
javascript
数据结构与算法
前端
STL源码学习笔记(1):stack及自定义实现
详细参考《stl
源码剖析
》1、stack底层源码,摘自SGISTL:stl_stack.h#ifndef__SGI_STL_INTERNAL_STACK_H#define__SGI_STL_INTERNAL_STACK_H
super-god-boy
·
2020-09-16 14:48
coding
Language
STL源码剖析
配接器
stack
堆栈
容器
epoll底层红黑树使用部分
源码剖析
:为什么使用红黑树以及如何使用红黑树
我们知道epoll的底层使用了红黑树来管理文件描述符,为什么会选择红黑树这种结构呢?以下是个人理解:epoll和poll的一个很大的区别在于,poll每次调用时都会存在一个将pollfd结构体数组中的每个结构体元素从用户态向内核态中的一个链表节点拷贝的过程,而内核中的这个链表并不会一直保存,当poll运行一次就会重新执行一次上述的拷贝过程,这说明一个问题:poll并不会在内核中为要监听的文件描述符
Mr_H9527
·
2020-09-16 14:30
c++&服务端
【Linux 内核网络协议栈
源码剖析
】listen 函数剖析
listen函数仅供服务器端调用,把一个未连接的套接字转换为一个被动套接字,指示内核应接受指向该套接字的连接请求。1、应用层——listen函数#includeintlisten(intsockfd,intbacklog);/*sockfd是bind之后的套接口描述字,第二个参数规定了内核应该为相应套接口排队的最大连接个数*/2、BSDSocket层——sock_listen函数/**Perfor
selfimpr1991
·
2020-09-16 13:53
OpenSource
TCP/IP
epoll
源码剖析
epoll的实现主要依赖于一个虚拟文件系统:eventpollfs。epoll是个module,module的入口eventpoll_init,通过eventpoll_init初始化。在初始化的过程中,eventpollfscreate两个slub分别是:epitem和eppoll_entry。epoll使用过程中有几个基本的函数分别是epoll_create,epoll_ctl,epoll_wa
0Resurrection0
·
2020-09-16 12:04
操作系统
Linux
epoll
源码
文件系统
io复用
Redis
源码剖析
——ziplist的实现
有序集合对象ziplist为Redis中的压缩列表,是列表键和哈希键的底层实现之一,用于存储长度短的字符串和小整数。ziplist采用一段连续的内存来存储节点ziplist的表示因为ziplist的数据结构的长度是变化的所有没有特定的结构体,ziplist在内存中的布局如下entry也是不定长的,没有特定的结构体,entry在内存中的布局如下previous_entry_length的长度可以为1
Coding_Reading
·
2020-09-16 09:56
Redis源码剖析
从
源码剖析
RxJava基本工作原理(4),Schedule调度器的实现
目录Schedule调度器Schedule调度器rxJava的调度器还是比较复杂的,继承关系比较复杂不说,而且有很多内部类,绕来绕去的有点恶心。但是嘛,先把图画出来再说,跟着图的路线走,总不会迷路的。首先我们使用的schedule的方式就是.subscribeOn(Schedulers.io())那么就从这个IO()函数入口去看下,里面是个什么东西,@NonNullpublicstaticSche
Super-B
·
2020-09-16 08:23
源码
android
java
java
队列
android
多线程
STL各容器底层所使用的数据结构
C++STL的实现:1.vector底层数据结构为数组,支持快速随机访问2.list底层数据结构为双向链表,支持快速增删3.deque底层数据结构为一个中央控制器和多个缓冲区,详细见STL
源码剖析
P146
大学笑长
·
2020-09-16 07:02
C++学习
【北京】低价出售C/C++经典书籍
都很新C++程序设计5元高质量C/C++编程指南8元C++对象模型10元STL
源码剖析
12元深入浅出MFC10元设计模式10元C++primer8元面向对象程序设计5元java语言基础教程5元C语言程序设计
bxyill
·
2020-09-16 07:49
windows下搭建基于nginx的rtmp服务器,实现rtsp推流到rtmp
程序猿学社的GitHub,欢迎Stargithub技术专题本文已记录到github文章目录前言准备部署ffmpeg安装配置环境变量查看版本
nginx-rtmp
安装
nginx-rtmp
下载修改配置文件跨域请求启动
程序猿学社
·
2020-09-16 06:06
FFmpeg视频处理入门学习
nginx的rtmp服务器
rtsp推流到rtmp
流媒体
nginx
1.7.11.3
Java
源码剖析
(22)--Redis 如何实现高可用
Redis如何实现高可用1)实现高可用的方式1.1)数据持久化1.2)Redis主从同步1.3)Redis哨兵模式1.4)Redis集群2)小结1)实现高可用的方式Redis高可用的手段主要有以下四种:数据持久化主从数据同步(主从复制)Redis哨兵模式(Sentinel)Redis集群(Cluster)其中数据持久化保证了系统在发生宕机或者重启之后数据不会丢失,增加了系统的可靠性和减少了系统不可
姜皓
·
2020-09-16 03:40
#
Java面试
#
Java中间件
redis
Java
源码剖析
(21)--Redis 如何实现消息队列
Redis如何实现消息队列1)实现消息队列的方式2)使用List实现消息队列3)使用Stream实现消息队列1)实现消息队列的方式在Redis中实现消息队列的方式有几种?早在Redis2.0版本之前使用Redis实现消息队列的方式有两种:使用List类型实现使用ZSet类型实现其中使用List类型实现的方式最为简单和直接,它主要是通过lpush、rpop存入和读取实现消息队列的,如下图所示:lpu
姜皓
·
2020-09-16 03:10
#
Java中间件
#
Java面试
redis
队列
java
Java
源码剖析
(23)--JVM 的内存布局和运行原理
JVM的内存布局和运行原理1)JVM的内存布局1.1)堆1.2)方法区1.3)程序计数器1.4)虚拟机栈1.5)本地方法栈2)类的生命周期2.1)加载阶段2.2)验证阶段2.3)准备阶段2.4)解析阶段2.5)初始化JVM(JavaVirtualMachine,Java虚拟机)顾名思义就是用来执行Java程序的“虚拟主机”,实际的工作是将编译的class代码(字节码)翻译成底层操作系统可以运行的机
姜皓
·
2020-09-16 03:10
Java
学习笔记
#
Java面试
jvm
java
面试
Java
源码剖析
(20)--Redis 怎样实现分布式锁
Redis怎样实现分布式锁1)分布式锁1.1)分布式锁的常见实现方式:2)单机锁3)使用Redis实现分布式锁4)锁超时如果在分布式环境下使用就会出现锁不生效的问题,需要使用分布式锁来解决。1)分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式,是为了解决分布式系统中,不同的系统或是同一个系统的不同主机共享同一个资源的问题,它通常会采用互斥来保证程序的一致性,这就是分布式锁的用途以及执
姜皓
·
2020-09-16 03:10
#
Java中间件
#
Java面试
STL
源码剖析
之_allocate函数
SGISTL提供的标准std::allocator中的_allocate函数代码如下:templateinlineT*_allocate(ptrdiff_tsize,T*){set_new_handler(0);T*tmp=(T*)(operatornew((size_t)(size*sizeof(T))));if(tmp==0){cerr<<"outofmemory"<
weixin_30325793
·
2020-09-16 00:21
c/c++
mybatis数据库连接池介绍和
源码剖析
mybatis数据库连接池分析介绍一、数据库连接池1、定义数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。(百度百科)2、核心原理连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户
khuangliang
·
2020-09-15 19:09
mybatis
mybatis
数据库
出去面了一波大数据,总结一下
Python工程师标准>>>魔秀科技总结:岗位5-10年,面试人:技术总监:薪资范围25以上问题:1、自我介绍,手写wordcount,分析每个算子,主要问flatmap和map的区别,简单的原理不算,要从
源码剖析
weixin_34259559
·
2020-09-15 18:12
大数据
面试
java
STL
源码剖析
——基础
六大部件模板类模板函数模板成员模板(类拥有本身为类模板或函数模板的成员)特化:优先选择特化版本templatestruct__type_traits{...};template{...};template{...};....偏特化1.限制部分参数类型templateclassvector{...};templateclassvector{...};2.限制为指针、引用、常量等templatestr
I_ren
·
2020-09-15 13:39
c++
STL源码剖析
设计模式(21)——状态模式
目录APP抽奖活动问题状态模式状态模式解决APP抽奖问题状态模式在实际项目-借贷平台
源码剖析
状态模式的注意事项和细节APP抽奖活动问题请编写程序完成APP抽奖活动具体要求如下:假如每参加一次这个活动要扣除用户
minge0001
·
2020-09-15 10:43
设计模式
设计模式
java
分布式架构-Dubbo框架(五):Dubbo协议模块
源码剖析
RPC协议基本组成RPC协议名词解释在一个典型RPC的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中RPC协议就指明了程序如何进行网络传输和序列化。也就是说一个RPC协议的实现就等于一个非透明的远程调用实现,如何做到的的呢?协议基本组成:地址:服务提供者地址端口:协议指定开放的端口报文编码:协议报文编码,分为请求头和请求体两部分。序列化方式:将请求体序列化成对象Hessian
_单眼皮男生_
·
2020-09-15 06:58
分布式
Atlas
源码剖析
(一)
信号设置在设置各种配置参数之前,如果支持sigaction,则使用sigaction来设置SIGSEGV信号,指定处理函数调用g_on_error_stack_trace获取相关的堆栈信息后,调用abort退出程序。此信号在程序结束前进行清除,修复默认处理方式。#ifdefHAVE_SIGACTION/*registerthesigsegvinterceptor*/memset(&sigsegv_
wssg3620625
·
2020-09-15 06:36
Atlas
Atlas
源码剖析
(十一)
读写分离和负载均衡在分析完语句后,做好分表的准备工作之后,Atlas会调用check_flags函数检查传过来的语句是否为GET_LOCK、AUTOCOMMIT或SQL_CALC_FOUND_ROWS语句;注解:a、GET_LOCK:get_lock(str,timeout)设法使用字符串str给定的名字得到一个锁,超时为timeout秒。若成功得到锁,则返回1,若操作超时则返回0(例如,由于另一
wssg3620625
·
2020-09-15 06:36
Atlas
web前端不使用flash视频流播放
同时还基础解决了ffmpeg推流和关流的控制自我小结http-flv其实就是在
nginx-rtmp
的基础上,转成了http协议1.nginx-http-flv安装wgethttp://nginx.org
靖哥在学习
·
2020-09-15 04:37
nginx
http-flv
ffmpeg
chromium
源码剖析
之chrome进程通信的基本模式
1.Chrome进程通信的基本模式进程间通信,叫做IPC(Inter-ProcessCommunication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有一类一直没说过,是Plugin进程,每一个插件,在Chrome中都是以进程的形式呈现,等
农村的我
·
2020-09-14 22:00
c++
strtok
源码剖析
位操作与空间压缩
欢迎关注微博:http://weibo.com/MoreWindowsstrtok
源码剖析
strtok函数可以用于分隔字符串,最近看了下这个函数的源代码,其中有unsignedcharmap[32];/
MoreWindows
·
2020-09-14 18:59
Windows编程
位操作
strtok
空间压缩
Vector
源码剖析
Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。LinkedList是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。LinkedList没有丝线Serializable接口,因此它不支持序列化,实现了Cloneable接口,能被克隆,实现了RandomA
IT忍者神龟
·
2020-09-14 15:32
Linux设备驱动模型简述(
源码剖析
)
1.Linux设备驱动模型和sysfs文件系统Linux内核在2.6版本中引入设备驱动模型,简化了驱动程序的编写。Linux设备驱动模型包含设备(device)、总线(bus)、类(class)和驱动(driver),它们之间相互关联。其中设备(device)和驱动(driver)通过总线(bus)绑定在一起。Linux内核中,分别用bus_type、device_driver和device结构来
hueyxu
·
2020-09-14 14:00
教你透彻了解红黑树
教你透彻了解红黑树作者:July、saturnman2010年12月29日本文参考:Google、算法导论、STL
源码剖析
、计算机程序设计艺术。
信念
·
2020-09-14 14:34
STL 之 set
源码剖析
G++2.91.57,cygnus\cygwin-b20\include\g++\stl_set.h完整列表/***Copyright(c)1994*Hewlett-PackardCompany**Permissiontouse,copy,modify,distributeandsellthissoftware*anditsdocumentationforanypurposeisherebygra
hustyangju
·
2020-09-14 14:50
STL
ArrayList
源码剖析
(看不懂直播写检讨)
将分析以下内容字段构造函数扩容插入和删除导致的数组大幅度移动1.首先来看一下ArrayList里面的属性下面是两个经常会用到的属性这个就是用来存储元素的数组transientObject[]elementData;这个是数组存储元素的总数,相信size()方法大家都用过注意不要跟数组长度混淆,数组长度是elementData.length()privateintsize;下面三个是ArrayLis
DFYoung
·
2020-09-14 13:22
【源码】Set集合
源码剖析
注:以下源码基于jdk1.7.0_11Set集合其实是对Map集合的封装,Map集合存储的是键值对,那么我们将值隐藏,不向外界暴露,这样就形成了Set集合。对应Map集合的两个很重要的实现HashMap(基于哈希表),TreeMap(基于红黑树),Set集合也对应了两个类HashSet和TreeSet。由于之前花很多篇幅介绍了HashMap和TreeMap,在此将不再介绍其实现细节。简单分析下Ha
rowandjj
·
2020-09-14 13:36
java基础整理
JAVA动态代理(proxy)实现和
源码剖析
JDK动态代理实例(1)动态代理首先提供一个调度处理器接口(Invocationhandler),该接口实例封装了我们要代理的对象实例的数据。publicclassTranceHanderimplementsInvocationHandler{privateObjecttObject;publicTranceHander(Objectt){tObject=t;}@OverridepublicObj
Howie Lee
·
2020-09-14 13:19
Java
java深入解析
JavaArrayList
源码剖析
结合源码对ArrayList进行讲解。JavaLinkedList
源码剖析
结合源码对LinkedList进行讲解。
shark1357
·
2020-09-14 12:21
【JDK1.8
源码剖析
】外部迭代器Iterator接口
文章目录Iterator
源码剖析
(一)简介(二)源码分析Iterator
源码剖析
(一)简介Iterabtor是从jdk1.2就存在的接口,称为外部迭代器。
沉晓
·
2020-09-14 12:13
JDK源码剖析
java
jdk
STL
源码剖析
学习之容器
//STL之容器//学习目的:各个容器的使用。/*容器分为:序列式容器和关联式容器。序列式容器:array,vector,list,deque关联式容器:set,map,multiset,multimapvector的数据安排以及操作方式,与array非常相似两者唯一的差别在于,array是静态空间,一旦配置了就不能改变,想要扩充,一切琐碎得由客户端自己来:首先,配置新空间,然后将元素从旧址一一搬
codinglf
·
2020-09-14 08:21
BOOST/STL
【经验】实现STL算法时遇到的模板编译错误问题
注:__copy是照着STL
源码剖析
进行命名的(实际上我倒很不喜欢SGI的那么长的命名),是针对输入迭代
weixin_30378623
·
2020-09-14 07:18
STL源码笔记(18)—平衡二叉树AVL(C++封装+模板)
AVLTree平衡二叉树在几年前刚学数据结构时,AVL-Tree只是一个仅仅需要掌握其概念的东西,今非昔比,借看STL
源码剖析
的契机希望从代码层面将其拿下。
NearXDU
·
2020-09-14 05:52
STL
为什么auto_ptr智能指针不能作为STL标准容器的元素
上个星期的博客shared_ptr
源码剖析
里其实遗漏了一个问题:为什么auto_ptr不可以作为STL标准容器的元素,而shared_ptr可以?
一缕阳光a
·
2020-09-14 05:18
C++
STL
STL
源码剖析
——stl_algobase.h
STL标准中没有区分基本算法或复杂算法,单SGI把常用的一些算法定义在只中,其他算法定义在中。stl_algobase.h中的算法,比较值得学习的是copy(),它“无所不用其极”的改善效率。copy的目的是复制一段元素到指定区间,复制操作最容易想到赋值操作符=,但是有的赋值操作符=是trivial的,可以直接拷贝。关于赋值操作符=是不是trivial的,可以参考“Memberwisecopy(深
taxue505
·
2020-09-14 05:29
STL源码剖析
STL
源码剖析
之算法:set_difference & set_symmetric_difference
templateOutputIteratorset_difference(InputIterator1first1,InputIterator1last1,InputIterator2first2,InputIterator2last2,OutputIteratorresult){while(first1!=last1&&first2!=last2){if(*first1OutputIterato
weixin_34185560
·
2020-09-14 05:38
上一页
24
25
26
27
28
29
30
31
下一页
按字母分类:
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
其他