在多线程环境中,锁的使用是避免不了的,使用锁时候有多种锁供我们选择,比如 ReentrantLock
、CountDownLatch
等等,但是作为 Java 开发者来说,刚刚接触多线程的时候,最早接触和使用的恐怕非 synchronized
莫属了。那你真的了解synchronized
吗,今天我们就从以下几个方面彻底搞懂 synchronized
。
4 posts tagged with "Java多线程"
View All Tags · 17 min read
类锁和对象锁到底有什么区别
· 8 min read
有锁才有自由
生活中不存在绝对的自由,绝对的自由通常对应的无序和混沌,只有在道德、法律、伦理的约束下的相对自由,才能使人感受到自由。
而在多线程编程中,锁是至关重要的,锁就是道德,就是法律约束,没有锁的多线程环境将会是混乱的,所有线程都在争夺资源,最后的结果就是导致系统崩溃,而有了锁之后,多线程环境才能稳定高效的工作。
Java 调式、热部署、JVM 背后的支持者 Java Agent
· 13 min read
我们平时写 Java Agent 的机会确实不多,也可以说几乎用不着。但其实我们一直在用它,而且接触的机会非常多。下面这些技术都使用了 Java Agent 技术,看一下你就知道为什么了。
- 各个 Java IDE 的调试功能,例如 eclipse、IntelliJ ;
- 热部署功能,例如 JRebel、XRebel、 spring-loaded;
- 各种线上诊断工具,例如 Btrace、Greys,还有阿里的 Arthas;
- 各种性能分析工具,例如 Visual VM、JConsole 等;
Java 开发, volatile 你必须了解一下
· 14 min read
上一篇文章说了 CAS 原理,其中说到了 Atomic* 类,他们实现原子操作的机制就依靠了 volatile 的内存可见性特性。如果还不了解 CAS 和 Atomic*,建议看一下我们说的 CAS 自旋锁是什么