原子性,可见性,有序性
happens-before 原则6条
管程:
互斥:临界区,共享资源
同步 条件变量,等待队列
关于活锁中的"谦让":比如释放锁
CopyOnWriteList ,所谓写时复制:
1. 读的时候读原数组
2. 写(需加锁):新数组,把原来的所有东西复制过去,然后更改数组引用
threadlcoal类:
每个线程拥有变量的备份,避免线程安全
1 | Map<String, LinkedBlockingQueue<Runnable>> stack = afterTransactionOpts. get ();<br> afterTransactionOpts. set (stack);afterTransactionOpts. get (); |
原理:
threadlocal 是一个代理工具类,用户使用threadlocal ---> 拿到当前线程 ---->thread. threadLocalMap ---> map.get( threadlocal)
注意threadlocal 与 线程池 一起使用时容易发生内存泄漏,应该手动释放内存(remove )
CountDownLatch和CyclicBarrier:如何让多线程步调一致?
原理: 锁,计数器, 条件变量( wait,signal)
分类:
后端八股
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!