0

我正在为高性能计算课程学习统一并行 C。

有人可以解释为什么“不推荐”使用指向本地内存的共享指针吗?

我能想到的唯一原因是有一个悬空指针。

请看参考图片:sharedpointer_to_local

[shared_pointer_to_local[2]

资料来源: http://hpac.rwth-aachen.de/teaching/sem-lsc-13/UPC.pdf http://www.cs.fsu.edu/~engelen/courses/HPC/Languages.pdf

4

1 回答 1

1

你是对的 - 原因本质上是悬空指针的可能性。

更具体地说,指向本地值的指针通常只对创建它的线程有意义,因此将该值放在共享数据结构中通常没有意义,因为其他线程只能将其视为无法安全取消引用的不透明值. 此外,无法查询指向本地值的指针以获取关联信息,因此更广泛的数据结构或算法将需要以某种方式维护该关联信息,以便知道指针在何处有效使用。

于 2017-05-02T15:52:52.827 回答