POSIX线程

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

相关

  • Y-12国家安全大楼Y-12国家安全大楼(英语:Y-12 National Security Complex)是美国能源部美国国家核安全局(英语:National Nuclear Security Administration)的设施,位于田纳西州橡树岭的橡树岭国家实
  • 马格达莱纳岛马格达莱纳岛(Isla Magdalena)是智利南部的岛屿,位于伊瓦涅斯将军艾森大区,面积约2,025平方公里,部分地区属于马格达莱纳岛国家公园的范围。坐标:44°35′44″S 73°11′25″W / 4
  • 美国陆军国民警卫队陆军国民警卫队(英语:Army National Guard, ANG)是美国各个州、哥伦比亚特区、波多黎各、关岛、美属维尔京群岛的陆军民兵组织及美军的预备队。它与美国空军国民警卫队共组成美
  • 肝胰壶腹肝胰壶腹(hepatopancreatic ampulla),也称为肝胰管(hepatopancreatic duct)、乏特氏壶腹(ampulla of Vater),是胰管(英语:pancreatic duct)和胆总管(英语:common bile duct)结合后形成的组
  • 八纮一宇塔八纮一宇塔位于宫崎县宫崎市中心部的平和台公园内(二战前被称作“八纮台”),正式名称是“八纮之基柱(あめつちのもとはしら)”(或八纮一宇塔),由当时的著名雕刻家日名子实三设计完成
  • 青海格尔木太阳能光伏电站格尔木太阳能光伏电站位于中国青海格尔木市,始建于2009年8月20日,并于2011年10月29日正式启用 。电站每年的输出预计为317亿瓦时。在格尔木沙漠群中,共有发电量达570兆瓦的光伏
  • 佐佐木菜摘佐佐木菜摘(日语:佐々木 菜摘,3月30日-),日本资深女演员、配音员。出身于岩手县。B型血。本名佐佐木克枝(日语:佐々木 克枝/ささき かつえ)。以前经历Chameleon House、剧团Burstman(日
  • The Next WebThe Next Web(TNW)是一个于2006年创办的科技及网页开发新闻网站。它亦是TNW Conferences的举办者,定期于阿姆斯特丹、纽约和圣保罗举行。The Next Web由鲍里斯·范赞丹(Boris Ve
  • 尪姨 (原住民族)尪姨(西拉雅语:;大武垅语: ;马卡道语:)为西拉雅、马卡道及大武垅等原住民族传统祖灵信仰文化中之祭司,多数为女性。尪姨主要工作是主持祭祀活动和驱赶邪灵,作法的工具是手斧,因为刀剑
  • 布罗克鞋布罗克鞋(英语:brogue,苏格兰盖尔语:)是一种低跟鞋,以鞋面雕花和坚固的皮革鞋面而著称。布罗克鞋起源于爱尔兰,原本是一种户外或乡村用鞋,不适合作为休闲或商务用鞋。但现在布罗克鞋