我有一些代码使用缓冲区移动字节memmove().缓冲区由多个线程访问.我得到一个非常奇怪的行为; 有时缓冲区不应该是它应该是什么,我在想是否memmove()和/和malloc()线程安全.我在iOS上工作(如果这是依赖于平台的).
在提供线程的实现中,malloc通常是线程安全的(即,即使malloc从多个线程调用,它也会采取措施确保堆不会被破坏).它的确切方式会有所不同:一些使用单个堆,内部同步以确保不会出现损坏.其他人将使用多个堆,因此不同的线程可以同时分配内存而不会发生冲突.
memmove 通常就像你在自己的代码中进行分配一样 - 如果你在线程之间共享一个缓冲区,那么你有责任同步对这些数据的访问.
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |