linuxspring 发表于 2024-5-6 13:20:54

pthread.h与thread.h的区别问题

pthread.h是类unix下的posix提供的线程库,我们在实现了posix标准下的操作系统都可以使用,我在书上看到说thread.h是标准库提供的线程库,那么我有点好奇的是为啥再linux下使用gcc编译器编译带thread.h的头文件尽然报错了,不知道是我代码问题还是gcc编译器中的c实现没有实现thread.h,

站长 发表于 2024-5-6 13:36:27

C11才实现了多线程,在此之前为了写多线程程序,gcc使用posix线程。
但也正因为gcc有phread,所以它没有实现thread.h,但最新版本我不知道。

linuxspring 发表于 2024-5-6 14:06:37

明白了,我看老师在课堂上讲课时再windows下使用Pelles C环境来开发C程序却能够使用thread.h标准库函数,这是因为(Pelles的C编译器实现)实现了c11标准了吗?所以它才可以使用thread.h!我电脑环境中的gcc版本没实现c11标准所以我不能用!是嘛!

站长 发表于 2024-5-6 15:20:48

linuxspring 发表于 2024-5-6 14:06
明白了,我看老师在课堂上讲课时再windows下使用Pelles C环境来开发C程序却能够使用thread.h标准库函数,这 ...

不是说它不支持C11标准,只是说它不支持C11新增的多线程特性。

多线程特性是可选的,C实现应当定义宏__STDC_NO_THREADS__以表明它不提供<threads.h>及多线程功能。
页: [1]
查看完整版本: pthread.h与thread.h的区别问题