摘要: select、poll、epoll都是用来监听文件描述符。都是I/O多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个文件描述符,一旦某个文件描述符就绪(读就绪或写就绪),能够通知程序进行相应的读写操作 select、poll、epoll本质还是同步I/O(I/O多路复用本身就是同 阅读全文
posted @ 2021-04-05 17:18 半分、 阅读(664) 评论(0) 推荐(0) 编辑
摘要: 前言 我们都清楚日志是mysql的一个重要组成部分,记录着数据库运行期间各种状态信息。而Mysql日志又分为错误日志、查询日志、慢查询日志、二进制日志(binlog)和事务日志(redo log、undo log)。其中在我们开发中聊的比较多的就是二进制日志(binlog)和事务日志(redo lo 阅读全文
posted @ 2021-01-03 11:25 半分、 阅读(2857) 评论(0) 推荐(2) 编辑
摘要: 前言 JDK中的ThreadPoolExecutor线程池相信大家都很熟悉,对于线程池的一些高频面试题,比如有哪些参数,每个参数的含义,什么时候发挥作用,工作流程等问题都能回答上来。而对于一些不是很常见的线程池面试题就显得有点模糊,比如:线程池中线程执行完了一个任务接下来是做什么,是等待还是被收回, 阅读全文
posted @ 2020-10-31 22:36 半分、 阅读(8820) 评论(1) 推荐(0) 编辑
摘要: 前言 为了解决高并发的流量问题,通常我们都会添加缓存这一层,来扛住大量的读请求。虽然缓存能够帮数据库分担大量的读请求,但是也伴随着一个问题就是缓存中的数据怎么跟数据库中的数据保持一致,又是一个新问题 数据实时性等级 这里我们需要保证缓存和数据库的数据一致性,也可以根据数据所要求的实时性等级去评估,并 阅读全文
posted @ 2020-09-26 17:21 半分、 阅读(1740) 评论(0) 推荐(1) 编辑
摘要: 前言 ArrayBlockingQueue和LinkedBlockingQueue都是JUC包下的阻塞队列,只是实现的方式不同,我们都清楚阻塞队列被运用在线程池中,用来存储要被执行的任务,除了被运用在线程池中,如果有场景需要保证任务被顺序执行,也可以单独的使用到阻塞队列,因为队列具有先入先出(FIF 阅读全文
posted @ 2020-09-05 17:04 半分、 阅读(356) 评论(0) 推荐(1) 编辑
摘要: 前言 在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我们开发者来说是无感知的,下面具体分析一下spring是如何解决bean之间循环依赖,为什么要使用到三级缓存,而不是二级缓存 bean生命周期 首先大家需要了解一下bean在spri 阅读全文
posted @ 2020-08-23 10:35 半分、 阅读(37276) 评论(33) 推荐(35) 编辑
摘要: 前言 之前讲过synchronized关键字在JDK1.7之前是一把重量级的锁,那时JVM还未对synchronized关键字进行优化,所以synchronized会调用操作系统的函数实现加锁和解锁。而在JDK1.7后JVM对其进行优化,synchronized可以通过自旋达到一把轻量级的锁,在JV 阅读全文
posted @ 2020-08-09 18:37 半分、 阅读(402) 评论(0) 推荐(0) 编辑
摘要: Java的跨平台性 Java具有跨平台性,无疑是JVM底层翻译出来的汇编指令的不同,Unix和Window系统的汇编指令是不同的,Windows派系采用的是Intel汇编,Unix派系采用的是AT&T汇编。无论在哪个平台上编写的Java文件,编译后的class文件,放在哪个平台上都可以执行,只要下载 阅读全文
posted @ 2020-07-26 20:36 半分、 阅读(385) 评论(4) 推荐(0) 编辑
摘要: 摘要 在我们的日常研发工作中,数据库表的设计是必不可少的。如何设计数据库表之间的关系也就决定着我们的代码业务如何写。如何设计数据库表也是我们需要掌握的技能之一。表如何设计字段的命名,数据类型,长度,索引的建立等都会对我们的代码开发,性能上带来影响,并且如果一个表毫无规范的去设计,还会被后面接手的程序 阅读全文
posted @ 2020-07-19 18:28 半分、 阅读(326) 评论(0) 推荐(1) 编辑
摘要: 引言 MVCC全称为Multiversion concurrency control多版本并发控制,我们清楚Mysql的默认隔离级别是可重复读,而Mysql实现可重复读就是使用的MVCC多版本并发控制,通过每条数据的版本号(也可以叫做事务id)来实现不同事务之间的并发访问,有点类似乐观锁,并不需要对 阅读全文
posted @ 2020-07-12 22:25 半分、 阅读(743) 评论(0) 推荐(0) 编辑