当前位置:  开发笔记 > 编程语言 > 正文

线程安全和`const`

如何解决《线程安全和`const`》经验,为你挑选了3个好方法。

如何const(指针,引用和成员函数),在C++线程安全的帮助?



1> Mark Pim..:

任何不可变的(即不可变的)数据本质上都是线程安全的 - 多个线程同时读取相同的只读数据没有风险,因为它永远不会改变!

在C++中将变量标记为const使其成为只读,从而使线程安全.


并且假设它的初始化是线程安全的。
还假设所有成员函数都是可重入的(即没有静态对象或其他共享数据)

2> Brian Rasmus..:

多线程的主要问题是可变性.const限制了这一点,但既然你可以抛弃常量,那就不是万无一失的.


没错,但你需要做额外的工作才能在脚下射击自己.
没有代码是万无一失的,但你必须防范墨菲,而不是针对马基雅维利.
我同意并且作为C#程序员这些天我当然会想念const&

3> Patrick..:

const成员函数不应该改变状态,这样可以安全地同时从多个线程调用.但是线程安全不是const的目的,C++提供了mutable关键字和const_cast,这意味着const实际上并不保证线程安全,不应该依赖于此目的.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有