Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C POSIX线程与并行性_C_Linux_Pthreads_Posix - Fatal编程技术网

C POSIX线程与并行性

C POSIX线程与并行性,c,linux,pthreads,posix,C,Linux,Pthreads,Posix,由pthread库管理的POSIX线程是否并行工作?我的讲师告诉我们,这个库只创建不由Linux内核管理的用户线程。我写了一些代码来填充大型矩阵,并比较了线程和整个程序的执行时间,它似乎并行工作。我可以使用这个库来创建具有内核可以识别的线程的并行程序吗 Posix线程是Linux上具有glibc/musl+可能的其他pthread实现的内核线程。Posix线程是Linux上具有glibc/musl+可能的其他pthread实现的内核线程。您需要区分规范和实现 POSIX是一个规范,我认为您的讲师

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

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

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

您需要区分规范和实现

POSIX是一个规范,我认为您的讲师是正确的,POSIX没有规定线程需要由内核管理,并并行执行,至少我找不到任何相关的措辞


在实践中,大多数主要的实现——包括通过glibc在Linux上实现pthread,以及通过MinGW在Windows上实现pthread——都是通过内核系统调用实现pthread并并行执行。因此,如果您的讲师实际上指出pthread在具体使用中不是内核线程,那么这至少是误导性的,而且可以说是错误的。

您需要区分规范和实现

POSIX是一个规范,我认为您的讲师是正确的,POSIX没有规定线程需要由内核管理,并并行执行,至少我找不到任何相关的措辞


在实践中,大多数主要的实现——包括通过glibc在Linux上实现pthread,以及通过MinGW在Windows上实现pthread——都是通过内核系统调用实现pthread并并行执行。因此,如果您的讲师实际上表示pthread在具体使用中不是内核线程,那么这至少是误导性的,可以说是错误的。

也许您的讲师考虑的是Windows?来自man 7 pthreads:线程不共享进程ID。实际上,LinuxThreads线程被实现为比通常共享更多信息的进程,但不共享公共进程ID。Linux线程(包括管理器线程)使用ps1作为单独的进程可见。@cdarke即使线程由内核管理并并行执行。讲师可能的意思是POSIX没有规定线程的这种实现。从理论上讲,兼容POSIX的实现可以创建并发执行但不并行执行的用户线程。@cdarke:LinuxThreads很久以前就被NPTL取代了。@Obake:也许你的讲师把pthreads和GNU pth混淆了。也许你的讲师想到的是Windows?来自man 7 pthreads:线程不共享进程ID。实际上,LinuxThreads线程被实现为比通常共享更多信息的进程,但不共享公共进程ID。Linux线程(包括管理器线程)使用ps1作为单独的进程可见。@cdarke即使线程由内核管理并并行执行。讲师可能的意思是POSIX没有规定线程的这种实现。从理论上讲,符合POSIX标准的实现可以创建并发执行但不并行执行的用户线程。@cdarke:LinuxThreads很久以前就被NPTL取代了。@Obake:也许你的讲师把pthreads和GNU pth混淆了。它被称为:本机POSIX线程库NPTL是针对Linux操作系统。它被称为:本机POSIX线程库NPTL是针对Linux操作系统的POSIX线程规范的实现。