1. ホーム
  2. c

mallocはスレッドセーフか?

2023-09-19 08:28:49

質問

このような場合 malloc() 関数はリエントラントですか?

どのように解決するのですか?

どこかで読んだのですが、-pthreadでコンパイルすると、mallocがスレッドセーフになるそうです。malloc は ANSI C で、スレッドはそうではないので、私はその実装に依存していることを確信しています。

もし私たちがgccについて話しているならば。

コンパイルとリンクに -pthread をつけると malloc() はスレッドセーフになります。 およびAMD64で、スレッドセーフになります。

http://groups.google.com/group/comp.lang.c.moderated/browse_thread/thread/2431a99b9bdcef11/ea800579e40f7fa4

別の意見、より深い洞察

<ブロッククオート

glibc-2.2+ の {malloc, calloc, realloc, free, posix_memalign} は、glibc-2.2+ では スレッドセーフ

http://linux.derkeiler.com/Newsgroups/comp.os.linux.development.apps/2005-07/0323.html