【问题标题】:What's a Pthread?什么是 Pthread?
【发布时间】:2013-02-14 03:45:31
【问题描述】:

我对“pthread”和“thread”的概念感到困惑。我知道 pthread 是 POSIX 线程的缩写形式,它是 UNIX 中使用的一种标准化线程。但是人们经常使用“线程”来指代线程。 pthread 和线程是否等效?或者 pthread 只是 UNIX 中使用的线程的名称? 提前致谢。

【问题讨论】:

  • 啊,这让我明白了这个概念。谢谢

标签: multithreading operating-system


【解决方案1】:

线程是一个通用概念。 Wikipedia defines it as:

在计算机科学中,执行线程是可由操作系统调度程序独立管理的最小程序指令序列。线程是轻量级进程。

Pthreads 或POSIX threads 是在 Unix 上与 C 程序一起使用的该概念的一种实现。大多数现代语言都有自己的线程实现。从该网页:

Pthread 被定义为一组 C 语言编程类型和过程调用,通过 pthread.h 头文件/包含文件和线程库实现 - 尽管在某些实现中该库可能是另一个库(例如 libc)的一部分.

【讨论】:

    【解决方案2】:

    要添加到灰色,

    Pthread 符合 POSIX 标准,这意味着您可以在大多数 UNIX 操作系统中使用它。

    无需为每个 Unix(Linxux、FreeBSD 等)重写它们,并且所有它们的行为都是相同的。

    【讨论】:

      【解决方案3】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 2011-01-24
        • 2016-08-11
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        • 2014-04-14
        相关资源
        最近更新 更多