memcpy是否安全?

twe*_*ter 6 c c++ process thread-safety memcpy

我在网上看了一眼并没有能够满足自己的答案.

memcpy线程安全吗?(在Windows中)

我的意思是,如果我使用单个memcpy写入进程之间共享的内存区域(使用boost :: shared_memory_object),然后尝试使用单个memcpy从另一个进程读取该区域,那么在写入时将自动阻止一个进程发生了什么?我在哪里可以读到这个?

Joh*_*lén 12

memcpy通常按原始速度编码.它不是线程安全的.如果需要,您需要在关键部分内执行memcpy调用或使用其他一些信号机制.

take_mutex(&mutex);
memcpy(dst, src, count);
yield_mutex(&mutex);
Run Code Online (Sandbox Code Playgroud)

  • "线程安全"和"线程安全"之间存在混淆.您可以毫无问题地从不同的线程调用memcpy.但是,您可以滥用线程安全的memcpy来创建数据争用,然后所有赔率都关闭.这显然是调用者打算做的事情. (2认同)

Dra*_*sha 7

memcpy不是线程/进程安全的