如果同时没有写访问权限,则从多个线程读取访问权限(不使用互斥锁或原子)是安全的。可以从多个线程读取Const变量:
const int x = 10;
当我确定没有写访问权限时,我还可以安全地从多个线程中读取没有const限定符的变量吗?我知道这不是一个好习惯,但我想知道它是否安全。指针怎么样?当我需要使用指针来从多个线程进行只读访问时,它应该以这种方式声明,对吧? :
const int * const p = &x;
答案 0 :(得分:1)
当然,只要您确定没有正在进行的写操作,您就可以从多个线程中读取非const变量。
const int * const p = &x;
以上语句表示您正在阻止修改值和指针。如果您只想保护值本身,可以使用
const int * p = &x;