假设我有以下C函数
void *AllocateMemory(int numBytes)
{
//allocate "numBytes" of memory
//return the memory address
}
如果通过如此多的进程(如100并行)访问上述函数,是否存在内存损坏或段错误的可能性?
注意:环境是多线程的。
答案 0 :(得分:2)
不要混淆进程和线程。
通过流程,根本不会发生任何事情。
使用线程,如果您的函数直接工作并且不接触或使用任何共享资源,它也应该可以正常工作。
答案 1 :(得分:1)
所有进程都有自己的地址空间,因此多个进程不是问题。
对于线程,答案是它取决于您的malloc()
实现。
我遇到的最常见的实现是线程安全的。有关详细信息,请参阅此问题