我有一些程序使用MapViewOfFile来共享数据,但是我得到了一些奇怪的访问冲突,似乎是访问映射文件数据。
某些共享数据有指针,但这些指针仅由一个进程设置和使用,但由进程内的多个线程设置和使用。
我知道你不能在不同进程的映射视图中使用指针,因为显然它们可以映射到每个进程的不同内存,但是在同一进程的线程之间的映射内存中使用指针是否安全?
答案 0 :(得分:1)
您可以在同一进程中的线程之间共享指针。只需确保使用锁定保护共享内存,例如关键部分。多个线程同时访问共享内存 - 特别是如果一个或多个线程正在更新内存 - 很容易导致访问冲突。
答案 1 :(得分:0)
是的,在同一进程中的线程之间共享指针(在映射的内存中)是安全的,因为线程共享相同的地址空间。