#锁

后端讲求的是高并发、高性能、高可用(3H),但是要实现 3H,通常是通过优化架构(横向分层,纵向分割)、使用缓存、分布式化和集群化等手段来实现。很少会自己写线程代码,日常开发在需要用到多线程的地方也大多都交给框架处理,对多线程和锁原理的理解一直不够深入。

趁着周末有时间,从简单的线程创建方式开始讲起,逐步深入了解关于线程的几种状态和锁原理。针对一些以前没写过独立文章的锁实现,还会展开来讲。

阅读更多

Java 中实现线程同步用得最多的是 synchronized ,但使用 synchronized 本质是锁升级的过程。当升级到重量级锁之后会有性能问题。而且无法当并发数下来之后,无法进行“锁降级”操作。

ReentrantLock 本质是 CAS 操作,都是在用户态进行,没有涉及到重量级锁的内核态指令,而且能够手动控制获取锁和释放锁。

阅读更多

synchronized 作为使用得最多的多线程同步方案,可以说适用于绝大多数需要保证线程安全的场景。

但是关于 synchronized 是如何实现线程安全,背后使用了什么锁机制呢?以及使用synchronized 有什么别的注意事项?

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×