gpt4 book ai didi

c - 在没有 C11 线程的情况下,C 标准库函数是否是线程安全的?

转载 作者:行者123 更新时间:2023-12-03 12:46:30 25 4
gpt4 key购买 nike

我正在 Windows 上编写一个多线程程序。由于我知道没有 C 的 Windows 实现支持 C11 线程,因此我最好的选择是使用 native WinAPI 多线程。但是有一个问题! C库中的一些函数,如malloc C11 标准要求 I/O 函数是线程安全的。但是,即使 __STDC_NO_THREADS__,它们是否也必须是线程安全的?被定义为?如果 C 实现中不存在线程设施,那么它们是线程安全的似乎毫无意义,但它确实有帮助,因为我真的不想将所有 I/O 函数包装在互斥锁中。

最佳答案

如果您针对 Microsoft 多线程运行时库进行编译和链接,则 malloc() 之类的函数将是线程安全的。

这不是语言保证,而是由平台保证。

哦,还有 read MSDN carefully .在 C 或 C++ 中使用线程需要使用 _beginthread()_beginthreadex() , 不是 Win32 CreateThread

更多:https://docs.microsoft.com/en-us/cpp/parallel/multithreading-with-c-and-win32?view=vs-2019

关于c - 在没有 C11 线程的情况下,C 标准库函数是否是线程安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62199766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com