关于malloc和free中的线程安全
可能重复:关于malloc和free中的线程安全,c,multithreading,malloc,glibc,C,Multithreading,Malloc,Glibc,可能重复: 我听说glibc malloc()不是线程安全的,因为同时调用malloc()的进程的多个线程将导致未定义的行为。我的问题是,如果一个线程调用free(),另一个线程调用malloc(),这会导致未定义的行为吗?如果使用-pthreads链接,malloc()在glibc中是线程安全的 否则,链接器不会在线程安全的malloc中链接,这将导致未定义的行为。如果使用-pthreads链接,malloc()在glibc中将是线程安全的 否则,链接器不会链接到线程安全的malloc中,这
我听说glibc malloc()不是线程安全的,因为同时调用malloc()的进程的多个线程将导致未定义的行为。我的问题是,如果一个线程调用free(),另一个线程调用malloc(),这会导致未定义的行为吗?如果使用-pthreads链接,malloc()在glibc中是线程安全的
否则,链接器不会在线程安全的malloc中链接,这将导致未定义的行为。如果使用-pthreads链接,malloc()在glibc中将是线程安全的
否则,链接器不会链接到线程安全的malloc中,这将导致未定义的行为。这实际上取决于您使用的内存分配器,但是,我认为默认情况下,malloc和free是不可重入的,因为它们在静态列表中维护内存块列表 这可能会导致并发症,如果你同时进行malloc'和free 我知道
ptmalloc
,但是,是线程安全的,所以您可以使用它
这些链接也很有用:
ptmalloc
,但是,是线程安全的,所以您可以使用它
这些链接也很有用: