gpt4 book ai didi

c++ - 使用匿名管道是否会为线程间通信引入内存障碍?

转载 作者:可可西里 更新时间:2023-11-01 13:28:56 25 4
gpt4 key购买 nike

例如,假设我用 new 分配一个结构并将指针写入匿名管道的写入端。

如果我从相应的读端读取指针,我能保证在结构上看到“正确”的内容吗?

同样有趣的是 socketpair() 在 unix 上的结果和在 windows 上通过 tcp 环回自连接的结果是否具有相同的保证。

上下文是一种服务器设计,它使用 select/epoll 集中事件分发

最佳答案

For example, say I allocate a struct with new and write the pointer into the write end of an anonymous pipe.

If I read the pointer from the corresponding read end, am I guaranteed to see the 'correct' contents on the struct?

没有。无法保证写入 CPU 会从其缓存中清除写入内容并使其对可能进行读取的其他 CPU 可见。

Also of of interest is whether the results of socketpair() on unix & self connecting over tcp loopback on windows have the same guarantees.

没有。

关于c++ - 使用匿名管道是否会为线程间通信引入内存障碍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com