线程资源同步机制,先抓住这三件事

93次阅读
没有评论

理解线程同步,不要一上来就背一堆 API,先抓住它到底在解决什么问题:原子性、可见性和有序性。

第一件事:原子性

原子性是指一组操作要么整体完成,要么整体不被打断。像 synchronizedReentrantLock 这种互斥手段,主要就是为了解决多个线程同时修改共享资源的问题。

第二件事:可见性

一个线程改了变量,别的线程什么时候能看到,不是理所当然的。volatile 能保证读到的是较新的值,也能约束部分重排序,但它不负责复合操作的原子性。

第三件事:有序性

为了优化执行效率,编译器和 CPU 可能调整指令顺序。同步机制除了互斥,还承担建立 happens-before 关系的作用,避免线程间看到违反直觉的执行结果。

常见工具怎么选

简单共享状态优先考虑 synchronized 或锁;只需要可见性时再看 volatile;并发计数、无锁更新则常用原子类;控制并发量时可以用信号量。

一句话理解

线程同步不是只为“加锁”,而是为了让多个线程对共享数据的读写结果可控、可见、可推理。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-03-29发表,共计428字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)