POSIX线程与并行性

时间:2019-06-14 09:04:00

标签: c linux pthreads posix

POSIX线程(由pthread库管理)是否可以并行工作?我的讲师告诉我们,该库仅创建用户线程,而不由Linux内核管理。我写了一些填充大矩阵的代码,并比较了线程和整个程序的执行时间,它似乎可以并行工作。我可以使用该库来创建具有内核可识别线程的并行程序吗?

2 个答案:

答案 0 :(得分:3)

Posix线程是Linux上具有glibc / musl(可能还有其他pthread实现)的内核线程。

答案 1 :(得分:1)

您需要区分规范和实现。

POSIX是规范,并且(我认为)您的讲师是正确的,即POSIX并不指示线程需要由内核管理并并行执行(至少我找不到)任何相关的措词in the official specification)。

在实践中,大多数主要实现-包括(如其他答案所述)在Linux上通过glibc,在Windows上通过MinGW-通过内核系统调用实现pthreads并并行执行。因此,如果您的讲师实际上说过pthreads不是具体使用的内核线程,那么这至少是一种误导,并且可以说是错误的。