摘要: BIO 同步阻塞IO 服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。 适用于连接数目小,并发小。 NIO同步非阻塞IO 服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用 阅读全文
posted @ 2022-05-31 23:16 yifanSJ 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 一、引⾔ 提起Redis,我们经常会说其底层是⼀个单线程模型,但这是不严谨的。Redis 单线程指的是⽹络请求模块使⽤了⼀个线程,即⼀个线程处理所有⽹络请求,其他模块该使⽤多线程, 仍会使⽤了多个线程。既然是单线程模型,那么CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者⽹络带宽。 阅读全文
posted @ 2022-05-31 23:00 yifanSJ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法. 在threadlocal的生命周期中,都存 阅读全文
posted @ 2022-05-31 16:04 yifanSJ 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 经过我之前的实践,可以看出 NESTED事务申明在调用者上会新建一个独立事务。申明在被调用者上,若调用者存在事务则加入调用者事务。调用者不存在事务则新建一个独立事务。 这个功能好像和spring默认的事务传播行为REQUIRED一样的? 不,它的功能可是比REQUIRED要强大! 我来通过实验证明N 阅读全文
posted @ 2022-05-31 15:53 yifanSJ 阅读(3323) 评论(0) 推荐(1) 编辑
摘要: explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 三种情况: 1、id相同:执行顺序由上至下 2、id不同:如果是子查询,id的序号会递增,id值 阅读全文
posted @ 2022-05-31 14:40 yifanSJ 阅读(51) 评论(0) 推荐(0) 编辑