首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >++操作符线程安全吗?

++操作符线程安全吗?
EN

Stack Overflow用户
提问于 2011-01-08 01:15:30
回答 3查看 20.2K关注 0票数 59

注意:我真的不太擅长多线程编程,但我目前的项目让我这样做,所以我试图弄清楚什么是线程安全,什么不是。

我在读埃里克·利伯特的awesome answers on what ++i does。他说这是真正发生的事情:

计算代码x以生成变量

  • 该变量的值被复制到临时位置

  • 临时值递增以生成新值(不覆盖temporary!)

  • the新值存储在变量

  • 中操作的结果是新值

<>G212>

这让我开始思考,如果两个线程调用++i会怎么样?如果第一个线程在步骤3,而第二个线程在步骤2。(意思是说,如果第二个线程在第一个线程在变量中存储新值之前将值复制到temp位置,该怎么办?)

如果发生这种情况,那么两个线程似乎都只会递增i一次,而不是两次。(除非整个过程都在一个lock中。)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4628243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档