摘要: 什么时候需要进行需要原子操作? 很常见的例子,就是利用Redis实现分布式锁。 实现锁需要哪些条件? 我们知道要实现锁,就需要一个改变锁状态的方法。这个方法能原子地对锁的状态进行检查并修改。如果修改成功,则意味着获得了锁。对于硬件,它提供的就是test-and-set,compare-and-swa 阅读全文
posted @ 2019-07-26 15:49 猫毛·波拿巴 阅读(16230) 评论(2) 推荐(2) 编辑
摘要: 前言 我的上一篇博客的案例中,请求锁的线程如果发现锁已经被其他线程占用,它是通过自旋的方式来等待的,也就是不断地尝试直到成功。本篇就讨论一下另一种方式,那就是挂起以等待唤醒。 注:相关代码都来自《Operating System: Three Easy Pieces》这本书。 自旋哪里不好? 先说明 阅读全文
posted @ 2019-06-30 10:56 猫毛·波拿巴 阅读(2323) 评论(0) 推荐(4) 编辑
摘要: 以下内容针对互斥锁。 为什么需要锁? 锁代表着对临界区的访问权限。只有获得锁的操作对象,才能进入临界区。 锁的本质是什么? 锁的本质是一个数据结构(或者说是一个对象),这个对象内保留着描述锁所需要的必要信息。如当前锁是否已被占用,被哪个线程占用。而锁的一些工具,函数库,实际上就是对一个锁对象的信息进 阅读全文
posted @ 2019-06-17 16:54 猫毛·波拿巴 阅读(1951) 评论(0) 推荐(3) 编辑
摘要: 这里的缓存指的是什么? 到处都可以有缓存,磁盘中的数据提前加载到内存中就是常见的“缓存”,而我们这里要说的是内存中的数据提前加载到CPU的缓存。每个CPU都有一定的缓存空间。 什么样的数据会存入缓存? 编译器或CPU可以明确知晓的,可能被经常访问的数据。例如一个在循环体中的变量,因为这个变量在循环结 阅读全文
posted @ 2019-05-11 15:55 猫毛·波拿巴 阅读(840) 评论(1) 推荐(0) 编辑
摘要: 操作系统的本质 操作系统本质上也是一个进程,它与其他用户进程共享CPU。与普通进程不同的是,它具有硬件的所有访问权限。而用户进程默认对硬件是没有任何访问权限的,它只能通过系统调用,委托操作系统来完成这些操作。 问题 当操作系统在创建完一个进程后,会将CPU的控制权交给这个新创建的进程。上下文切换,大 阅读全文
posted @ 2019-05-01 12:02 猫毛·波拿巴 阅读(1156) 评论(0) 推荐(0) 编辑
摘要: 前言 这里分享一下我遇到的一个挺有意思的Controller形式,内容涉及@RequestMapping注解的原理。 实际案例 一、基本描述 项目甲中有多个模块,其中就有模块A和B。(这里的模块指的是Maven的多模块子项目),项目乙、丙、丁可以引用模块A来访问独立部署的模块B 模块A => 关于与 阅读全文
posted @ 2019-04-20 16:19 猫毛·波拿巴 阅读(1384) 评论(2) 推荐(0) 编辑
摘要: 前言 偶然发现Tomcat会话时间的半小时,并不是说“会话创建后只有半小时的有效使用时间”,而是说“会话空闲半小时后会被删除”。索性就翻了一下源码。做了一番整理。 注:空闲时间,指的是同一个会话两次请求之间的间隔时间 Session相关类图 HttpSession就是大家Servlet层可以直接使用 阅读全文
posted @ 2019-04-14 17:03 猫毛·波拿巴 阅读(2193) 评论(0) 推荐(0) 编辑
摘要: 前言 在某种情况下,后台服务可能需要访问另一台服务器的REST接口。以前估计不少人用的都是HttpRequest类来着,结合Paser解析JSON格式的Body。现在Spring Boot的Web Starter就自带了RestTemplate,直接用它的就好了。最好不要再往项目里导新的依赖。这里做 阅读全文
posted @ 2019-04-04 21:59 猫毛·波拿巴 阅读(2021) 评论(0) 推荐(0) 编辑
摘要: 前言 此篇随笔记录《How Tomcat works》中关于Lifecycle接口的相关总结 Lifecycle接口的主要目的 核心:统一。 已知Tomcat的卡特琳娜(Catalina)由许多组件构成。当Catalina启动的时候,这些组件也要跟着一起启动,并且当Catalina关闭的时候,这些组 阅读全文
posted @ 2019-04-01 22:49 猫毛·波拿巴 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 前言 做后台的,Filter肯定没少配置,但是知晓其原理的可能不多。在这之前我也不懂,但这并不影响业务开发,同时也有其他的知识要学,所以一直就没看。这阵子有点闲,刚好在看《How Tomcat Works》的PipeLine相关内容。索性好好梳理一下FilterChain相关的知识。 类图 Filt 阅读全文
posted @ 2019-03-21 21:22 猫毛·波拿巴 阅读(3968) 评论(3) 推荐(2) 编辑