2013-02-28 84 views
2

我对“pthread”和“thread”的想法感到困惑。我知道pthread是POSIX线程的缩写,这是UNIX中使用的一种标准化线程。但人们经常使用“线程”来引用线程。线程和线程是否相同?或者pthread只是UNIX中使用的线程的名称? 在此先感谢。什么是线程?

+0

啊,这为我清除了这个概念。谢谢 – turtlesoup 2013-02-28 04:22:49

回答

3

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

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

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

Pthreads中被定义为一组C语言编程类型和过程调用,用pthread.h头实现/包括文件和一个线程库 - 尽管这个库可能是另一个库的一部分如libc,在一些实现中。

0

为了增加灰,

的Pthread是POSIX的投诉,这意味着你可以在大多数UNIX操作系统使用它。

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

1

Pthreads是指为线程创建和同步定义API的POSIX标准(IEEE 1003.1c)。这是线程行为的规范,而不是实现。操作系统设计人员可以按照他们希望的任何方式实施规范。许多系统实现Pthreads规范;大多数是UNIX类型的系统,包括Linux,Mac OS X和Solaris。尽管Windows本身不支持Pthreads,但仍有一些适用于Windows的第三方实现。

今天使用了三个主线程库:POSIX Pthreads,Windows和Java。 Pthread是POSIX标准的线程扩展,可以作为用户级或内核级库提供。 Windows线程库是Windows系统上可用的内核级库。 Java线程API允许直接在Java程序中创建和管理线程。但是,因为在大多数情况下,JVM运行在主机操作系统之上,所以Java线程API通常使用主机系统上可用的线程库来实现。这意味着在Windows系统上,Java线程通常使用Windows API实现; UNIX和Linux系统经常使用Pthreads