首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程对同一个变量进行读写。

线程对同一个变量进行读写。
EN

Stack Overflow用户
提问于 2014-03-21 01:27:31
回答 1查看 1K关注 0票数 0

我知道我应该使用互斥,但就我目前使用线程的方式而言,它会使程序过于复杂.

无论如何,我基本上有一个变量,用于表示线程当前是否正在执行工作。在主线程中,我在what循环中运行它,检查哪些线程不再繁忙。现在,很明显,我的线程可以在这个变量完成后写入这个变量。

是否允许从两个不同线程的相同变量中读取和写入,如果一个线程仅在读取,而一个线程仅在写入。阅读旧版本并不是什么大问题,因为在下一次迭代时,它只会读取一次正确的版本。

那么做这样的事安全吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 01:38:12

一般情况下,不。

以下文章解释了原因:

http://www.domaigne.com/blog/computing/mutex-and-memory-visibility/

下面是作为内存屏障的API函数列表:

11

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

https://stackoverflow.com/questions/22548536

复制
相关文章

相似问题

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