POSIX线程

✍ dations ◷ 2025-05-19 12:06:12 #应用程序接口,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'交替出现。

相关

  • 核素核素(英语:Nuclide)是具有特定原子量、原子序数和核能态,且平均寿命长得足以被观察到的一类原子。它是带有原子中的电子云的某类特殊原子核,以其质量数、中子数以及核的能态为标
  • 蛋白质复合体蛋白质复合体(英语:protein complex)是有两个以上功能相关的多肽链通过二硫键或其它蛋白质相互作用所形成的复合物。蛋白质复合体的种类繁多,许多种的性质与功能都还不为人所知,
  • 余午亭余午亭,明代歙县人。余午亭因堂兄余傅山之影响,研究医学,未尝一日废学。行医数十载,救人无数,人称“新安余氏医学世家”,曾和吴正伦创办“内科”,有弟子吴昆等。著有《诸症析疑》4
  • 欧鲁夫 (罗森堡伯爵)欧鲁夫·克里斯蒂安·卡尔·亚斯里,罗森堡伯爵(丹麦语:Oluf af Rosenborg,1923年3月10日-1990年12月19日),丹麦哈拉尔王子最小的儿子。娶Annie Helene Dorrit Puggard-Müller为妻,
  • 妃月留衣妃月留衣(日语:妃月るい,1994年1月16日-),日本的AV女优,山梨县出身。曾为“S1”专属女优,所属于“Japan Total Promotion”(ジャパントータルプロモーション)事务所。2016年5月,成为日
  • 川滇景天川滇景天(学名:)为景天科景天属的植物,为中国的特有植物。分布于中国大陆的云南等地,生长于海拔3,300米至4,300米的地区,一般生长在裸岩、山巅、山坡岩石缝中或草地,目前尚未由人工
  • 宝山城市工业园区宝山城市工业园区,是中华人民共和国上海市宝山区下辖的一个类似乡镇级行政区域,设上海市宝山城市工业园区管理委员会。宝山城市工业园区名义上属大场镇:122,下辖以下居委会及村
  • 血色孤语《血色孤语》(英语:)是一部2014年美国与德国合拍的黑色喜剧恐怖电影。由玛嘉·莎塔碧执导。瑞安·雷诺兹、杰玛·阿特登、安娜·肯德里克和杰姬·韦弗主演。2014年1月19日于201
  • 艾伦·平克顿艾伦・平克顿 (Allan Pinkerton,1819年8月25日 - 1884年7月1日),以私家侦探以及间谍等身份出名的19世纪美国人物。生于苏格兰的格拉斯哥。1842年移居芝加哥,1850年设立美国第一
  • 西燕西燕(384年-394年)是中国十六国时期慕容氏诸燕之一,由鲜卑慕容泓建立的政权。共存在10年。前秦苻坚灭前燕后,尽徙鲜卑入关中。苻坚淝水兵败后,政权陷于瓦解。晋太元九年(384年),前燕