- 博客(2)
- 收藏
- 关注
原创 synchronized怎么保证原子性,怎么实现?
锁内的代码不会被重排序到锁外(编译器/CPU 指令重排序受限)。:只有一个线程访问时,通过 CAS 标记线程ID(减少同步开销)。防止锁对象被重新赋值,导致不同线程使用不同的锁,失去同步效果。:竞争激烈时,线程进入阻塞状态(操作系统的互斥锁)。:多个线程交替执行,通过 CAS 自旋尝试获取锁。:同一时间只有一个线程能持有锁,其他线程被阻塞。// 释放锁(异常退出,保证锁最终释放):存放等待锁的线程(竞争失败时进入)。(更灵活,支持公平锁、条件变量)。:锁的释放会将线程本地内存的修改。
2025-03-27 15:41:07
775
原创 线程同步的方式?
区分读操作和写操作,允许多个读线程同时访问,但写线程独占资源。:通过硬件指令保证单条操作的不可分割性(如CAS操作)。简单直接,但可能引发死锁(如多个锁顺序不当)。:线程在条件不满足时阻塞,等待其他线程通知(:通过计数器控制同时访问资源的线程数量。:每个线程拥有独立的变量副本,避免共享。解决线程间数据隔离问题(如数据库连接)。:通过算法(如银行家算法)或工具(如。适用于多阶段任务同步(如并行计算)。:按固定顺序获取锁(如全局锁排序)。:线程持有资源的同时请求其他资源。适用于限流场景(如连接池)。
2025-03-27 15:21:06
557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人