【发布时间】:2020-12-01 19:47:56
【问题描述】:
要使用 glibc 构建 c11 线程程序,我仍然需要与 -lpthread 链接,为什么? glibc 2.28 声称支持 c11 线程,但为什么我还需要 pthread?
musl 可以在没有 pthread 的情况下构建 c11 线程。
【问题讨论】:
标签: multithreading pthreads glibc c11 musl
要使用 glibc 构建 c11 线程程序,我仍然需要与 -lpthread 链接,为什么? glibc 2.28 声称支持 c11 线程,但为什么我还需要 pthread?
musl 可以在没有 pthread 的情况下构建 c11 线程。
【问题讨论】:
标签: multithreading pthreads glibc c11 musl
是的,glibc 的 C11 线程实现在下面使用 pthreads 库,这就是它需要与 pthread 库链接的原因。在 glibc 中,pthreads(过去一直)是一个单独的库 - 因此需要链接它。
而在 musl 库中,线程实现是主 C 库本身的一部分,因此无论您使用 pthreads 还是 C11 线程与 musl 都无需链接任何线程库。另请参阅https://www.openwall.com/lists/musl/2012/07/25/3。
【讨论】:
thrd_* 实现)它们共享相同的internal implementation。