POSIX线程

✍ dations ◷ 2025-11-15 22:58:22 #应用程序接口,IEEE标准,并发计算

POSIX线程(英语:POSIX Threads,常被缩写为Pthreads)是POSIX的线程标准,定义了创建和操纵线程的一套API。

实现POSIX 线程标准的库常被称作Pthreads,一般用于Unix-like POSIX 系统,如Linux、 Solaris。但是Microsoft Windows上的实现也存在,例如直接使用Windows API实现的第三方库pthreads-w32;而利用Windows的SFU/SUA子系统,则可以使用微软提供的一部分原生POSIX API。

Pthreads定义了一套C语言的类型、函数与常量,它以pthread.h 页面存档备份,存于互联网档案馆头文件和一个线程库实现。

Pthreads API中大致共有100个函数调用,全都以"pthread_"开头,并可以分为四类:

POSIX的Semaphore API可以和Pthreads协同工作,但这并不是Pthreads的标准。因而这部分API是以"sem_"打头,而非"pthread_"。

线程操纵函数(简介起见,省略参数):

线程属性函数:

mutex函数:

条件变量函数:

线程私有存储(Thread-local storage):

同步屏障函数


其它多线程同步函数:


工具函数:

信号量函数,包含在semaphore.h中:

共享内存函数,包含在sys/mman.h中,链接时使用rt库:

C中使用 Pthreads的示例:

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <pthread.h>static void wait(void){    time_t start_time = time(NULL);    while (time(NULL) == start_time)    {        /* do nothing except chew CPU slices for up to one second */    }}static void *thread_func(void *vptr_args){    int i;    for (i = 0; i < 20; i++)    {        fputs("  b\n", stderr);        wait();    }    return NULL;}int main(void){    int i;    pthread_t thread;    if (pthread_create(&thread, NULL, thread_func, NULL) != 0)    {        return EXIT_FAILURE;    }    for (i = 0; i < 20; i++)    {        puts("a");        wait();    }    if (pthread_join(thread, NULL) != 0)    {        return EXIT_FAILURE;    }    return EXIT_SUCCESS;}

这段程序创建了一个新线程,打印含有“b”的行,主线程打印含有“a”的行。当两个线程相互切换执行时输出结果为'a'和'b'交替出现。

相关

  • 奇恒之腑脏腑,是中医对内脏的总称,通称五脏六腑。根据《素问‧五脏别论篇》,“脏”指的是人体内的五脏,即:肝、心、脾、肺、肾(加上心包即为六脏),主要功能为生化和蓄存精气;以及六腑,即:胆、小
  • 全等在几何中,全等是几何图形之间的一种合同,亦即几何图形之间的一种等价关系。 若两个几何图形的形状、大小完全相同,则称这两个图形是全等的图形。全等是相似的一种特例,当相似比
  • 卢卡公国卢卡公国是一个位于意大利的小国,仅存在于1815年到1847年。它位于卢卡的中心。在1815年,维也纳会议通过了成立卢卡公国并由波旁-帕尔马家族统治的决定,同时也通过了当波旁王朝
  • 拉莫尔科格尔山拉莫尔科格尔山(德语:Ramolkogel),是奥地利的山峰,位于该国西部,由蒂罗尔州负责管辖,属于奥特勒阿尔卑斯山脉的一部分,海拔高度3,550米,人类在1862年7月16日首次登顶。
  • 遮娄其王朝遮娄其王朝(卡纳达语:ಚಾಲುಕ್ಯ)是遮娄其人于6世纪到12世纪在印度中部和南部建立的王朝。实际上有三个遮娄其人国家,即遮娄其王朝也称巴达米遮娄其或早遮娄其,和后来的西遮
  • 欧洲联盟车牌欧洲联盟车辆号牌是根据欧洲联盟规定的通用格式制定、由各成员国发放的车牌。在欧洲绝大多数地区,例如欧盟成员国,已经统一了车牌格式。根据维也纳公约的规定,跨境车辆必须在车
  • 横门横门水道位于中华人民共和国广东省中山市横门山,距洪奇门约4千米,是横门水道的出口,为珠江三角洲八大口门之一。横门口的年径流量365亿立方米,占珠江出海总径流量的11.2%;年输沙
  • 瓦帕拉拉瓦帕拉拉(Vaparala),是印度安得拉邦Cuddapah县的一个城镇。总人口6602(2001年)。该地2001年总人口6602人,其中男性3260人,女性3342人;0—6岁人口672人,其中男320人,女352人;识字率59.25
  • 失踪的中后卫探案《失踪的中后卫探案》是柯南·道尔所著的福尔摩斯探案的56个短篇故事之一,收录于《福尔摩斯归来记》。剑桥大学的橄榄球教练“西里尔·奥佛顿”前来找福尔摩斯,指球队的领魂人
  • 芦野芳晴芦野芳晴(日语:芦野 芳晴,1965年3月1日-),日本男性动画师、动画导演。出身于山形县东根市。芦野在高中毕业之后,曾经在乐器行上班。1986年,他进入下判承包动画公司马克工作室(日语:ス