自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 AQS的大体框架思想

概括:AQS是一个对线程阻塞,排队,唤醒的一个抽象框架。大多数线程协作工具类都是用它作为内部类,然后对它进行运用,实现线程间的协作。ReentrenLock举例:组成部分:state,队列,工具类去实现的获取和释放逻辑state:0表示未被占有,占有,重入则加1,释放则减1队列:线程对state的cas占有操作失败则入队,等待执行中的线程唤醒(通过上述的获取和释放逻辑判断)。...

2020-11-23 23:07:26 120

原创 BIO,NIO,AIO的大白话区别

BIO:客户端每建立一个连接就需要消耗服务端一个线程,所以即使没有请求过来,连接还存在就要占着一个线程。所以在这种模式下不能有太多的客户端。它是同步阻塞的,即发起读写请求到读写完成都是不能干别的事情卡在那。NIO:每个客户端对应一个channel对象,而所有客户端对应的channel会注册给一个selector(一个线程),然后selector会进行各个channel的轮询,当channel请求过来的时候才去分配一个线程去进行这个请求的读写操作,然后读写完立刻释放线程。不过nio虽然是非阻塞的,也就是读

2020-09-23 20:52:52 164 1

原创 MVCC,通过解决问题的思路去理解

还是LM技术窝(就不打广告啦哈哈),之前对一些问题很困惑,例如MVCC怎么做到可重复读,甚至可以做到防幻读。以下就说我的这个小思路吧。第一点:做到事务之间的隔离。其实可能平时我们做一些业务操作的时候我们都会去实现这个功能,那就是给这条数据加上这个事务的id嘛,这样事务间不久可以进行区分了。想想解决幻读的时候不也就根据这个条件顺便解决了嘛。第二点:多个事务对同一行数据进行了相应的操作,我还能操作到原先的数据,而且还不加锁的?????按照我们的思路应该就是他们读到的是多条数据,其实也就是对于这行数据

2020-09-18 22:18:24 265

原创 Mysql索引是怎么一步步形成的?

之前对索引的一些逻辑总是知其然不知所以然,今天学了LM技术窝的mysql实战有了一定的认识。算是对索引演进的总结,以及对我后续复习建个小索引哈哈:每行数据按照主键自增存放在各个页中,每个页中有主键目录分别对应槽位------》插入的时候就会有页分裂的风险,因为要保证主键自增------》虽然主键自增,但是查询的时候也不能确定主键在哪,避免不了全表扫描------》建立主键索引,将每个页最小的主键挑出来放到一个索引目录,可以通过offsett实现页的随机读取然后可以获取到页的连续的一坨..

2020-09-18 21:43:42 416

原创 事务的隔离级别的理解

我们之前提到事务我们基本都是各种ACID的概念,对于所谓的理解也是建立在各种理论概念的堆积。 这两天在慕课看了关于事务的一个视频,对事务有了一种新的理解。事务其实就是一种锁和并发的结合体,但是为什么称为事务大概是为了方便我们理解吧。对于隔离性便有了一种新的认识,其实各种隔离性的操作都是为了提升性能而对一致性的一种破坏。总的来说可以总结如以下几部分:排他锁:序列化读...

2019-04-21 23:35:40 341

原创 实习之路2--设计模式之装饰者模式的理解(装饰IO流操作)

    和字面理解的差不多,装饰者模式就是用一个或多个类去扩展一个类的行为或状态,也就是扩展一个类的功能。相对于继承来说更加灵活。但要求装饰者和被装饰者要相同的超类型。附上代码说明:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.Fil...

2018-03-10 21:31:43 165

原创 实习之路1--设计模式之观察者模式的理解(温度计例子)

       所谓的观察者模式就如同订阅报纸一样,其中出版者对应观察者模式的主题,订阅者也就是观察者模式中的观察者。根据观察者模式的定义,定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。        对于一个主题类,它实现的是一个主题接口(Subject),具有订阅(registerObserver()方法),和删除订阅者(removeObser...

2018-03-09 15:58:31 456

原创 实习之路0--设计模式之策略模式的理解(鸭子类例子)

     最近开始了解设计模式(headfirst系列),也是为了多读懂些代码。其中有几句话很是赞同,那就是软件开发后往往会花比开发更多的时间去维护,所以我们应该致力于软件的可维护性和可扩展性。所以设计模式就扮演了一个很重要的角色。     继承对于许多初学者来说是个强大的武器,可以直接从父类获得所有的方法,也可以为我们的子类使用省略很多代码。但是这也是他的一个缺点,也就是说,你不可以选择性的继承...

2018-03-09 09:31:10 436

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除