内存是进程安全的
Is memcpy process-safe?
我在网上找了一下,没有找到满意的答案。
内存是线程安全的吗?(在Windows中)
我的意思是,如果我使用单个memcpy写入进程之间共享的内存区域(使用boost::shared_memory_object),然后尝试从另一个内存区域读取该区域使用单个内存的进程会自动阻塞其中一个进程当写作发生的时候?我在哪里可以读到这个?
memcpy通常针对原始速度进行编码。它不是线程安全的。如果您需要这样做,则需要在临界区内部执行memcpy调用或使用其他信号机制。
take_mutex(&mutex);
memcpy(dst, src, count);
yield_mutex(&mutex);
memcpy不是线程/进程安全的
memcpy()(或memmove())等例程是标准C库的一部分,通过标准
你混淆了"原子"answers"线程安全"。如果在共享区域中并发地读写数据(带或不带memcpy
),这是不安全的。当然,复制数据本身是线程安全的。
memcpy
本身也是线程安全的,至少在POSIX系统上看到这个,因此我猜它也在Windows上。
如果它是"自动阻塞",它必须是原子的(或者至少管理它自己的锁),这会减慢系统的速度。所以在您的情况下,您应该使用您自己的锁。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 虚拟决赛作为安全
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- boost消息队列线程安全和进程安全吗?
- 在进程间内存中使用boost::可选是否安全
- 为特定于进程的安全描述符创建访问令牌
- 在另一个进程提供的指针上使用 typeid 是否安全,该进程由同一编译器编译
- 我知道 pantheios 是线程安全的,但它是进程间安全的吗?
- 在同一进程中使用的两个模块中具有同步对象的通用名称是否安全
- IsDebuggerPresent()函数是停止调试进程的安全方法吗
- 从两个进程安全访问文件
- 是boost::进程间线程安全的
- 创建读取面向互联网的套接字的守护进程有什么安全问题?
- 内存是进程安全的
- 如果使用system用户令牌启动登录用户进程,是否会危及系统安全
- 对于进程间COM对象,不使用QueryInterface,将IDispatch*转换为IUnknown*是否安全?
- 线程杀死它的父进程安全吗?