会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
编程浅思录
恒者行远,思者常新。
新随笔
管理
2021年12月5日
CPU中断的硬件实现原理
摘要: 内容整理自较早前的微机原理学习笔记,重点梳理了实现硬件中断机制所依赖几个数据结构和硬件原件。 为什么需要中断? 中断机制的出现是为了协调处理器与外部设备速度不一致的问题,以提高处理器的利用率。 试想我们打开了文本编辑器,处理器就不干活了,等着键盘输入,这会浪费多少处理器计算资源? 另一种方式是处理器
阅读全文
posted @ 2021-12-05 17:30 元思
阅读(5721)
评论(0)
推荐(5)
2020年6月26日
硬件对同步的支持-TAS和CAS指令
摘要: 现在主流的多处理器架构都在硬件水平上提供了对并发同步的支持。 今天我们讨论两个很重要的硬件同步指令:Test-and-Set和Compare-and-Swap ##Test and Set 一个Test-and-Set(TAS)指令包括两个子步骤,把给定的内存地址设置为1,然后返回之前的旧值。 这两
阅读全文
posted @ 2020-06-26 09:25 元思
阅读(4796)
评论(1)
推荐(3)
2020年6月23日
Mysql和Redis数据同步策略
摘要: 为什么对缓存只删除不更新 不更新缓存是防止并发更新导致的数据不一致。 所以为了降低数据不一致的概率,不应该更新缓存,而是直接将其删除, 然后等待下次发生cache miss时再把数据库中的数据同步到缓存。 先更新数据库还是先删除缓存? 有两个选择: 1. 先删除缓存,再更新数据库 2. 先更新数据库
阅读全文
posted @ 2020-06-23 23:05 元思
阅读(7091)
评论(0)
推荐(0)
2020年6月17日
JSR133提案-修复Java内存模型
摘要: 1. 什么是内存模型? 在多处理器系统中,为了提高访问数据的速度,通常会增加一层或多层高速缓存(越靠近处理器的缓存速度越快)。 但是缓存同时也带来了许多新的挑战。比如,当两个处理器同时读取同一个内存位置时,看到的结果可能会不一样? 在处理器维度上,内存模型定义了一些规则来保证当前处理器可以立即看到其
阅读全文
posted @ 2020-06-17 13:41 元思
阅读(594)
评论(0)
推荐(2)
2020年6月2日
Java synchronized的理论基础-管程(Monitor)
摘要: 互斥 互斥访问是并发编程要解决的核心问题之一。有许多种方法可以满足临界区的互斥访问,大体上可以分为三种: 一种是软件方法,即由用户程序承担互斥访问的责任,而不需要依赖编程语言或操作系统,譬如Dekker算法、Peterson算法等,通常这种方式会有一定的性能开销和编程难度。 第二种是操作系统或编程语
阅读全文
posted @ 2020-06-02 13:49 元思
阅读(2278)
评论(0)
推荐(2)
2020年5月29日
比synchronized性能更好、功能更多的ReentrantLock
摘要: 主要内容 1. synchronized介绍 2. ReentrantLock介绍 3. ReentrantLock和synchronized的可伸缩性比较 4. Condition变量 5. ReentrantLock是公平的吗? 6. ReentrantLock这么完美吗? 7. 不要放弃syn
阅读全文
posted @ 2020-05-29 10:28 元思
阅读(1728)
评论(0)
推荐(0)
2020年5月27日
像宝石一样的Java原子类-基于CAS实现
摘要: ####写在前面 原文作者是Java语言的架构师Brian Goetz,他也是Lambda项目的主导者,著有经典并发书《Java Concurrency in Practice》。这是一篇发表于2004年的古老文章了,在JDK5刚刚发布之后,作为Java布道者第一时间对JDK5的新特性做了很透彻的说
阅读全文
posted @ 2020-05-27 14:48 元思
阅读(595)
评论(0)
推荐(1)
2019年12月10日
非阻塞I/O、多路复用、epoll杂谈
摘要: 写在前面 我在学习Java NIO时,看到网上很多资料是从Reactor模式入手,当我继续深挖下去,意识到NIO的本质或许不只Reactor模式那么简单,那又是什么呢? 于是我决定从Linux的系统调用着手,想了解一下Linux系统怎么做到的并发I/O。 所以这篇文章,更多得是对最近学习Linux
阅读全文
posted @ 2019-12-10 15:58 元思
阅读(2054)
评论(1)
推荐(5)
2019年2月28日
Spring MVC中的Controller是Serlvet吗?
摘要: 1. Controller不是Servlet 是Spring MVC中的唯一Servlet,(这点可通过查看FrameworkServlet的子类确认) Servlet容器(Tomcat)把所有请求都转发到 , 然后通过 把请求路由到具体的Controller中。 因此,Controller只是一个
阅读全文
posted @ 2019-02-28 12:13 元思
阅读(1957)
评论(0)
推荐(2)