我对“pthread”和“thread”的概念感到困惑。我知道 pthread 是 POSIX 线程的缩写形式,它是 UNIX 中使用的一种标准化线程。但是人们经常使用“线程”来指代线程。pthread 和线程是否等效?或者 pthread 只是 UNIX 中使用的线程的名称?提前致谢。
3 回答
要添加到灰色,
Pthread 符合 POSIX 标准,这意味着您可以在大多数 UNIX 操作系统中使用它。
无需为每个 Unix(Linxux、FreeBSD 等)重写它们,并且所有它们的行为都是相同的。
Pthreads 指的是 POSIX 标准 (IEEE 1003.1c),它定义了用于线程创建和同步的 API。这是线程行为的规范,而不是实现。操作系统设计者可以以他们希望的任何方式实现规范。许多系统都实现了 Pthreads 规范;大多数是 UNIX 类型的系统,包括 Linux、Mac OS X 和 Solaris。尽管 Windows 本身不支持 Pthreads,但有一些适用于 Windows 的第三方实现是可用的。
目前使用的三个主要线程库:POSIX Pthreads、Windows 和 Java。Pthreads 是 POSIX 标准的线程扩展,可以作为用户级或内核级库提供。Windows 线程库是 Windows 系统上可用的内核级库。Java 线程 API 允许直接在 Java 程序中创建和管理线程。然而,因为在大多数情况下,JVM 运行在主机操作系统之上,Java 线程 API 通常是使用主机系统上可用的线程库来实现的。这意味着在 Windows 系统上,Java 线程通常使用 Windows API 实现;UNIX 和 Linux 系统经常使用 Pthreads