Redis入门教程 发表于 2019-09-19 | 更新于: 2019-09-23 | 分类于 中间件 , Redis 字数统计: 8.4k | 阅读时长 ≈ 30 redis 的线程模型redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中,事件分派器根据 socket 上的事件 ... 阅读全文 »
常用消息队列简介 发表于 2019-09-05 | 更新于: 2019-10-09 | 分类于 中间件 , 消息队列 字数统计: 3.3k | 阅读时长 ≈ 11 消息队列常见场景消息队列常见的使用场景比较核心的有 4 个:解耦、异步、削峰、分布式事务。 解耦 通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了。 异步看一个场景,A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库要 3m ... 阅读全文 »
Spring Boot集成Mybatis 发表于 2019-08-29 | 更新于: 2019-09-23 | 分类于 数据库中间件 , Mybatis 字数统计: 2k | 阅读时长 ≈ 9 SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式。我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式一定是比较清晰简洁的。但是,复杂的 SQL 确实不太适合和代码写在一起。 下面记录一下配置过程: 创 ... 阅读全文 »
[多线程]Volatile和Synchronization详解 发表于 2019-08-14 | 更新于: 2019-08-14 | 分类于 Java , 多线程 字数统计: 4.3k | 阅读时长 ≈ 14 在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切 ... 阅读全文 »
ThreadLocal源码解析 发表于 2019-08-13 | 更新于: 2019-08-13 | 分类于 Java , 多线程 字数统计: 4k | 阅读时长 ≈ 17 ThreadLocal的作用ThreadLocal的作用是提供线程内的局部变量,说白了,就是在各线程内部创建一个变量的副本,相比于使用各种锁机制访问变量,ThreadLocal的思想就是用空间换时间,使各线程都能访问属于自己这一份的变量副本,变量值不互相干扰,减少同一个线程内的多个函数或者组件之间一 ... 阅读全文 »
数据结构与算法-入门 发表于 2019-08-12 | 更新于: 2019-12-20 | 分类于 数据结构 字数统计: 13.9k | 阅读时长 ≈ 59 数组数组,将元素存储到内存的连续位置中,是最基本的数据结构。数组数据结构的主要优点是如果知道索引就可以通过 O(l) 进行快速搜索,但是在数组中添加和删除元素的速度会很慢,因为数组一旦被创建,就无法更改其大小。如果需要创建更长或更短的数组,得先创建一个新数组,再把原数组中的所有元素复制到新创建的数组 ... 阅读全文 »
虚拟机性能监控与故障处理工具 发表于 2019-08-12 | 更新于: 2019-10-09 | 分类于 Java , JVM 字数统计: 272 | 阅读时长 ≈ 1 概述本文参考的是周志明的 《深入理解Java虚拟机》 第四章 ,为了整理思路,简单记录一下,方便后期查阅。 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本文希望能 ... 阅读全文 »
Java多线程面试集锦 发表于 2019-08-01 | 更新于: 2019-12-18 | 分类于 Java , 多线程 字数统计: 19.9k | 阅读时长 ≈ 71 什么是线程?进程?协程?进程 具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.(比如一个qq程序就是一个进程或者多个进程),系统进行资源分配的最小单位.。进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比 ... 阅读全文 »
Java线程池ThreadPoolExecutor源码详解 发表于 2019-07-19 | 更新于: 2019-12-21 | 分类于 Java , 多线程 字数统计: 10.4k | 阅读时长 ≈ 43 本文从源码层面去解读下java线程池的实现思想和代码。 总览先看一张java线程池的继承关系图: 简单介绍下: Executor 位于最顶层,也是最简单的,只有一个 execute(Runnable runnable) 接口方法定义 ExecutorService 也是接口,在 Executo ... 阅读全文 »
Spring-Boot + Kafka实现生产+批量消费 发表于 2019-07-16 | 更新于: 2019-09-23 | 分类于 中间件 , Kafka 字数统计: 1.6k | 阅读时长 ≈ 8 本文是Springboot + Kafka实现消息写入和批量消费,属于一个学习demo,下面直接上代码。 POM依赖1234567891011121314151617181920212223242526272829303132333435<parent> <group ... 阅读全文 »