2

次のC関数があるとします

void *AllocateMemory(int numBytes)
{

     //allocate "numBytes" of memory

     //return the memory address
}

上記の関数が非常に多くのプロセス (100 PARALLELY など) によってアクセスされる場合、メモリの破損またはセグメント障害の可能性はありますか?

注: 環境はマルチスレッドです。

4

2 に答える 2

1

すべてのプロセスには独自のアドレス空間があるため、複数のプロセスが問題になることはありません。

malloc()スレッドの場合、答えは実装に依存するということです。

私が遭遇した最も一般的な実装は、スレッドセーフです。詳細については、この質問を参照してください

malloc はスレッドセーフですか?

于 2013-06-24T13:31:24.547 に答える