1.线程安全是什么?
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。
2.什么情况是线程不安全?
3.最基本的保证线程安全的方式?
- 锁:加锁的目的就是保证共享资源在任意时间里,只有一个线程访问,这样就可以避免多线程导致共享数据错乱的问题。
4.锁是如何实现原子操作的?
依赖硬件。三条指令一次实现。
5.互斥锁的使用:
参考:[]:https://blog.csdn.net/yuanyuan320/article/details/110225815
大家共用一把锁,每次使用前先上锁,如果锁被上过了,就不能用。
6.读写锁在pthread 中的使用以及c++实现:
https://blog.csdn.net/weixin_45425093/article/details/121158727
7.互斥锁与自旋锁的区别
互斥锁被占用时,线程进入会引起线程切换,适用于锁比较多,线程切换代价小的情况
自旋锁被占用时,线程进入不会引起线程切换,而是阻塞等待,适用于锁比较少,线程切换代价大的情况
8.条件变量
互斥锁的使用:
本文来自博客园,作者:快乐过了阈值,转载请注明原文链接:https://www.cnblogs.com/black-worrior-2000/p/16636372.html
墨愁前路无知己,天下谁人不识君。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具