240 发简信
IP属地:广东
  • CountDownLatch源码分析

    countDownLatch可以实现一个线程或者一些线程需要等待其他线程的任务完成之后才做任务。需要等待执行的线程内调用await()等待其他线程执行完,而被等待的线程内调用...

  • CyclicBarrier

    循环屏障,它允许多个线程相互等待到一个障碍点之后才继续执行,可指定等待到屏障之后的执行任务,CyclicBarrier支持循环使用。 功能说明 CyclicBarrier实现...

  • ReenTrantLock源码阅读

    java为我们提供了synchronized来支持在多线程环境下的同步控制,但是synchronized有很多缺陷在很多时候会造成严重的后果。例如死锁问题,长时间堵塞问题等。...

  • HASH表设计与源码分析

    扩容操作 扩容大小 渐进式rehash 何时触发渐进式rehash Redis提供了传统的hash表实现,但是对其中的内存管理提供了扩充,提供了扩容/缩容处理,为了尽可能的高...

  • SDS设计与源码分析

    传统的C实现的字符串char*的不足之处? 1、以'\0'为字符串结尾,无法实现任意的字符串的保存,会被截断。 2、无法进行高效的操作,例如获取字符串长度、比较、追加等操作。...

  • 自定义mybatis拦截器实现分页

    原理: mybatis提供了拦截器功能,我们可以对Executor,StatementHandler,ParameterHandler,ResultSetHandler进行拦...

  • 线程封闭

    多线程共享数据的时候,涉及到访问共享变量。但是有时候不需要使用共享变量,将变量封闭在线程中,只供本线程使用。在java中通过ThreadLocal或者局部变量来实现线程封闭。...

  • 线程通信

    线程通信方式: 文件共享 网络通信 共享变量 jdk提供的协调api:wait/notify,park/unpark。多用于多线程协调完成某一任务。 wait()/notif...

  • 120
    线程

    线程的状态 线程分为五种状态。 新建(new):当我们创建线程的时候,线程出于new状态。 可运行状态(runable):当线程调用start()方法之后,线程出于可运行状态...

  • Mysql基础知识点《七》

    普通索引和唯一索引的选择 业务场景一:是否将唯一字段设置为主键索引 数据中出现了一个字段保证是唯一的,是否高设计这个字段为主键呢?建议不使用,应该创建一个递增的唯一索引。原因...

  • 120
    Mysql基础知识《六》

    再话可重复读事务 在之前我们说到了可重复读事务,由MVCC多版本控制来实现,接下来我们再来探讨一下事务的可重复读是怎么实现的。强调: 在RR事务开启的时候,有begin/st...

  • Mysql基础知识点《五》

    根据加锁范围,mysql中的锁的大致可以分为全局锁,表锁,行锁。 全局锁 全局锁就是对整个数据库实例加锁。通过flush table with read lock命令,将堆数...

  • Mysql基础知识点《四》

    索引的目的 创建索引的目的是为了提高查询的效率,就像书的目录一样。 索引的常见模型 哈希索引:哈希索引以K-V存储。可以在O(1)的时间复杂度找到元素。适合精确的等值查找,不...

  • Mysql基础知识点《三》

    事务的特性ACID 原子性:事务中的操作要么都发生,要么都不发生。一致性:事务的执行结果必须是将数据库从一个状态到另一个状态。隔离性:事务之间的执行互不影响。持久性:事务一旦...

  • 120
    Mysql基础知识点《二》

    重做日志文件(redo log)和二进制文件(bin log) bin logrhino文件的历史要比redo log日志文件的历史久,因为bin log是server层的日...

  • 120
    Mysql基础知识点《一》

    一条sql的执行流程 客户端连接Mysql,连接器负责连接管理和权限认证。 连接之后会将查询缓存中,如果缓存命中了,再检查时候有访问的权限,如果有,则返回数据集,否则执行3。...

  • Spring IOC ,AOP,MVC 的理解

    Spring的Ioc(Inversion of Control)和AOP()是spring的两大特性,所有的设计都是为了简化编程,我想这两种也不例外。 Spring IOC(...

  • 1326. 灌溉花园的最少水龙头数目

    在 x 轴上有一个一维的花园。花园长度为 n,从点 0 开始,到点 n 结束。花园里总共有 n + 1 个水龙头,分别位于 [0, 1, ..., n] 。给你一个整数 n ...

  • netty实现Object的传输

    当我们利用protobuf传输的时候,我们需要定义.proto文件,再利用protobuf插件生成java类型。这是有点麻烦,有没有直接就可以转换的方法呢?当然是有的,pro...