POSIX线程

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

相关

  • 心理学学派异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 瓦西里·雅可夫列维奇·斯特鲁维瓦西里·雅可夫列维奇·斯特鲁维(俄语:Василий Яковлевич Струве,1793年4月15日-1864年11月23日),德语名弗里德里希·格奥尔格·威廉·冯·斯特鲁维(德语:Fri
  • 向量喷嘴矢量喷嘴为一种飞机使用的推进技术,早期大都用于垂直起降战机上,至1980年代末期后,开始在普通战机上广泛应用。飞行物体的推力是一种有强弱与方向的动量,而此种含强度与方向的动
  • 森宝利坐标:51°31′02″N 0°06′30″W / 51.51722°N 0.10833°W / 51.51722; -0.10833Judith Portrait (3.92%)Lord Sainsbury (4.99%)英伯瑞家族 (15%)卡塔尔投资局 (25.999%)J
  • 潘兴潘兴县(Pershing County, Nevada)是美国内华达州西北部的一个县,面积15,715平方公里。根据2010年人口普查,共有人口6,753人。潘兴县的县治拉夫洛克(Lovelock)。潘兴县成立于1919年
  • 甲基硫醇甲硫醇又被称为巯基甲烷、硫氢甲烷,分子式:CH3-SH,分子量:48.10,CAS号:74-93-1。常温常压下为无色气体,有烂白菜气味,因此常被加进煤气中。它是一个具有独特腐臭气味的无色气体。它
  • 彩云信号场彩云信号场是位于韩国忠清南道论山市彩云面的一个车站,属于湖南线和江景线。湖南线江景线
  • 段强段强(1956年-),北京市人,中华人民共和国政治人物、第十二届全国人民代表大会北京地区代表。北京首都旅游集团董事长。毕业于清华大学经济管理,加入中国共产党。2013年,被选为全国人
  • 古一忱同治陕甘回乱期间,担任甘肃行省徽县知县,积极防御,对内恩威并施,使徽县回回人不反叛,对外积极防御侵扰县境的回军。古一忱(?-?),安徽太平府繁昌县人,清朝同治年间政治人物。同治回乱期间
  • 摘金奇缘 (小说)《摘金奇缘》(英语:)是美籍新加坡裔作家关凯文于2013年所出版的一本小说。关凯文表示,他写小说的意图是“向北美观众介绍当代亚洲”。他说这部小说是基于他自己孩提时代在新加坡