You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对从未读取的内存进行并发非原子写入是否安全?

注意:本问题并非其他问题的重复项。

并发非原子写入从未被读取的内存区域的安全性问题

假设某块内存区域从未被读取,那么何时对其进行并发非原子写入是安全的?这与语言无关,主要涉及CPU架构约束。

应用场景为在多线程应用中丢弃TCP套接字等不可寻址对象中的字节,但在无法使用BPF丢弃过滤器的情况下。

  • 此类写入按字节粒度操作是否可行?目前我有非关键业务代码采用这种方式(通过并发调用read系统调用将接收的数据全部转入黑洞),且至今未出现问题。
  • 写入操作是否必须限制在各自的缓存行内?一个核心写入、另一个核心读取时可能会出现一致性问题,但我认为这只会影响(从未被读取的)内存区域?
  • 写入操作是否必须限制在各自的(通常为4 KiB)内存页内?在某些情况下可能会出现TLB问题,若系统假设未同步指令意味着完全无需TLB同步,但这种情况确实极不可能(处理不同地址的并发请求通常也需要相同的同步机制)。
  • 总体而言,这种操作是否从始至终都不安全?

内容的提问来源于stack exchange,提问作者Claudia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:22:07