草庐IT

$FallbackHome机制

全部标签

Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制

本系列Netty源码解析文章基于4.1.56.Final版本,公众号:bin的技术小屋,大家如果看到图片显示不了的话,可以查看公众号原文前文回顾在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网络IO模型的演变,最终在此基础上引出了Netty的网络IO模型如下图所示:详细内容可回看《从内核角度看IO模型的演变》后续我们又围绕着Netty的主从Reactor网络IO线程模型,在《Reactor模型在Netty中的实现》一文中详细阐述了Netty的主从Reactor模型的创建,以及介绍了Reactor模型的关键组件。搭建了Netty的核心骨架如下图

「MySQL高级篇」MySQL锁机制 && 事务 -- 临键锁与幻读

大家好,我是melo,一名大三后台练习生,最近赶在春招前整理整理发过的博客~???!?引言锁锁锁,到哪到离不开这桩琐事,并发琐事,redis琐事,如今是MySQL琐事,这其中琐事,还跟MySQL另一个重要的东西--事务息息相关。这篇将从以下几点,带你解开这把爱情的苦锁:?本篇速览脑图?常规表锁&行锁这一部分较为常规,若有前置知识,可以直接跳到下边的【表级锁扩展】部分开始阅读建议借助侧边栏,有emoji表情的属于重点锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证

「MySQL高级篇」MySQL锁机制 && 事务 -- 临键锁与幻读

大家好,我是melo,一名大三后台练习生,最近赶在春招前整理整理发过的博客~???!?引言锁锁锁,到哪到离不开这桩琐事,并发琐事,redis琐事,如今是MySQL琐事,这其中琐事,还跟MySQL另一个重要的东西--事务息息相关。这篇将从以下几点,带你解开这把爱情的苦锁:?本篇速览脑图?常规表锁&行锁这一部分较为常规,若有前置知识,可以直接跳到下边的【表级锁扩展】部分开始阅读建议借助侧边栏,有emoji表情的属于重点锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证

JS执行机制及ES6

一、JS执行机制JS语言有个特点是单线程,即同一时间只能做一件事。单线程就意味着,所有的任务需要排队,前一个任务结束,才会执行后一个任务,可能造成页面渲染不连贯。为了解决这个问题,利用多核CPU的计算能力,允许JS脚本创建多个线程,即同步和异步。同步任务:同步任务都在主线程上执行,形成一个执行栈。前一个任务结束后再去执行下一个任务,程序的执行顺序与任务的排列顺序是一致的同步的。比如做饭的同步做法,我们要烧水煮饭,等水开了,再去切菜,炒菜。异步任务:通过回调函数实现的,异步任务相关回调函数添加到任务队列中(任务队列也称为消息队列)。在做一件事的同时,还可以去处理其他的事情。比如做饭的异步做法,在

JS执行机制及ES6

一、JS执行机制JS语言有个特点是单线程,即同一时间只能做一件事。单线程就意味着,所有的任务需要排队,前一个任务结束,才会执行后一个任务,可能造成页面渲染不连贯。为了解决这个问题,利用多核CPU的计算能力,允许JS脚本创建多个线程,即同步和异步。同步任务:同步任务都在主线程上执行,形成一个执行栈。前一个任务结束后再去执行下一个任务,程序的执行顺序与任务的排列顺序是一致的同步的。比如做饭的同步做法,我们要烧水煮饭,等水开了,再去切菜,炒菜。异步任务:通过回调函数实现的,异步任务相关回调函数添加到任务队列中(任务队列也称为消息队列)。在做一件事的同时,还可以去处理其他的事情。比如做饭的异步做法,在

ArrayList源码深度剖析,从最基本的扩容原理,到魔幻的迭代器和fast-fail机制,你想要的这都有!!!

ArrayList源码深度剖析本篇文章主要跟大家分析一下ArrayList的源代码。阅读本文你首先得对ArrayList有一些基本的了解,至少使用过它。如果你对ArrayList的一些基本使用还不太熟悉或者在阅读本文的时候感觉有点困难,你可以先阅读这篇文章ArrayList设计与实现,自己动手写ArrayList。ArrayList继承体系分析RandomAccess,这个接口的含义表示可以随机访问ArrayList当中的数据,拿什么是随机访问呢?随机访问就是表示我们可以在常量时间复杂度内访问数据,也就是时间复杂度是O(1)。因为在ArrayList当中我们使用的最基本的数据类型是数组,而数组

ArrayList源码深度剖析,从最基本的扩容原理,到魔幻的迭代器和fast-fail机制,你想要的这都有!!!

ArrayList源码深度剖析本篇文章主要跟大家分析一下ArrayList的源代码。阅读本文你首先得对ArrayList有一些基本的了解,至少使用过它。如果你对ArrayList的一些基本使用还不太熟悉或者在阅读本文的时候感觉有点困难,你可以先阅读这篇文章ArrayList设计与实现,自己动手写ArrayList。ArrayList继承体系分析RandomAccess,这个接口的含义表示可以随机访问ArrayList当中的数据,拿什么是随机访问呢?随机访问就是表示我们可以在常量时间复杂度内访问数据,也就是时间复杂度是O(1)。因为在ArrayList当中我们使用的最基本的数据类型是数组,而数组

day03-自己实现Mybatis底层机制-02

自己实现Mybatis底层机制-027.任务阶段4&5阶段4任务:开发Mapper接口和Mapper.xml阶段5任务:开发和Mapper接口相映射的MapperBean(1)Mapper接口packagecom.li.mapper;importcom.li.entity.Monster;/***@author李*@version1.0*MonsterMapper:声明对数据库的crud方法*/publicinterfaceMonsterMapper{//查询方法publicMonstergetMonsterById(Integerid);}(2)Mapper.xml文件select*from

day03-自己实现Mybatis底层机制-02

自己实现Mybatis底层机制-027.任务阶段4&5阶段4任务:开发Mapper接口和Mapper.xml阶段5任务:开发和Mapper接口相映射的MapperBean(1)Mapper接口packagecom.li.mapper;importcom.li.entity.Monster;/***@author李*@version1.0*MonsterMapper:声明对数据库的crud方法*/publicinterfaceMonsterMapper{//查询方法publicMonstergetMonsterById(Integerid);}(2)Mapper.xml文件select*from

Vue中关于数组与对象修改触发页面更新的机制与原理简析

Vue中关于数组与对象修改触发页面更新的机制与原理简析相关问题数组使用索引直接赋值与直接修改数组length时,不会触发页面更新。例如:exportdefault{name:"HomeView",data:()=>({list1:["A","B"],}),methods:{btnClicked(){this.list1[0]="C"this.list1[2]="C"},},}或是exportdefault{name:"HomeView",data:()=>({list1:[{text:"123"},{text:"456"}],}),methods:{btnClicked(){this.list