NPTL和POSIX线程之间的基本区别是什么?这两个人是怎么进化的?
发布于 2011-12-20 13:35:52
POSIX线程(p线程)不是一个实现,它是几个函数的API规范(纸面上的标准,英文),其名称以pthread_开头,在<pthread.h>头中定义。POSIX也是一套规范。
NPTL现在在Linux上的GNU Libc中,并且是(或者至少非常努力地)一个POSIX线程的实现。它是Linux系统上的一堆源代码和二进制代码。现在,使用gcc -pthread编译并与-pthread链接的应用程序在Linux上使用NPTL代码。
增编
存在pthread-s的替代实现:在Linux上,MUSL Libc的目标是兼容Posix (这意味着具有Posix );在其他Posix系统上(AIX、Solaris、.)您也有p线程(但它们不是NPTL或Glibc)。
发布于 2011-12-20 13:29:23
"POSIX线程“是一个‘标准’,定义了一个用于线程处理的API。也就是说,它说明了诸如pthread_exit ()等函数应该存在于系统中,并描述了它们的行为方式。所有符合POSIX的操作系统都以自己的方式实现POSIX线程。
NPTL是一系列特性,使"Linux“(内核)能够有效地实现"POSIX线程”(标准)。
您可以更多地了解NPTL以及它是如何产生这里的。
发布于 2011-12-20 13:26:08
我想您最好的信息来源是从维基百科开始,并从那里开始跟踪链接。
实际上没有什么区别: NPTL只是POSIX线程的当前Linux实现,您仍然使用pthread_*系列函数。在Linux历史的早期,使用了一个名为Linux线程的专用库。NPTL出现在2.6+内核大约2003年,有关更多详细信息,请参阅上面的链接。
BTW: NPTL ==本地Posix线程库
https://stackoverflow.com/questions/8576126
复制相似问题