c/c++多线程编程中,为什么基本类型不用加锁

 我来答
千锋教育
2017-02-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
先 你描述的不对 严格来说是在对应的cpu体系下遵循了正确的内存对齐的方式的数据才有不需要加锁的可能
加锁主要是防止partial read/.1;write 请参考《intel开发者手册》第三卷8;write以及cpu乱序带来的cpu操作可见性问题
举x86-64的例子来说 一个基本类型如果地址无cache splite(落在两个cacheline中) 都可以保证无partial read/.1
百度网友8ce788f
2017-02-16 · TA获得超过687个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:208万
展开全部
加锁是防止,执行到一半 ,发生线程竞争,跳到其他线程;

基本数据类型没有这个风险。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式