POSIX线程

✍ dations ◷ 2025-11-28 15:55:49 #应用程序接口,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'交替出现。

相关

  • 仁友客运仁友汽车客运股份有限公司,简称仁友客运,为台湾爱巴士交通联盟旗下的一家子公司,于1976年12月31日成立。主要经营台中市公车。全线部分低底盘无障碍公车全线部分低底盘无障碍公
  • 肌肉崇拜肌肉崇拜是一种身体崇拜(Body worship)的形式,其崇拜者以各种包含磨蹭、按摩、亲吻与舔舐等性刺激方式接触所谓的主导者的肌肉。主导者几乎总是一名健美运动者,要么是一名健美身
  • 拉玛一世帕佛陀约华朱拉洛(泰语:พระพุทธยอดฟ้าจุฬาโลก,皇家转写:Phra Phutthayotfa Chulalok;1737年3月20日-1809年9月7日),即拉玛一世(Rama I),泰国曼谷王朝(扎克里王朝)第
  • 山东教育电视台山东教育卫视(英文简称:SDETV),即山东教育电视台,是中国的一家省级教育电视台,也是中国大陆唯一的上星地方教育电视台,总部位于山东省济南市,由中华人民共和国教育部和山东省人民政
  • 镇平县坐标:33°2′17.60″N 112°13′36.27″E / 33.0382222°N 112.2267417°E / 33.0382222; 112.2267417镇平县,古称涅阳,是中国河南省南阳市下辖的一个县。位于河南西南部,南阳盆
  • 伯特·鲁坦埃尔伯特·利安德·伯特·鲁坦(英语:Elbert Leander "Burt" Rutan,1943年6月17日-)是美国一位航空工程师。16岁就学习了飞行,1965年在加州州立理工大学获航空航天工程学士学位。19
  • 周至元周至元可以指:
  • 纪君祥纪君祥(?年-?年),元代戏曲作家,大都人。一作纪天祥,生卒年不详。著有杂剧6种,现仅存1种:《赵氏孤儿冤报冤》,一作《赵氏孤儿大报仇》,简称《赵氏孤儿》。另《陈文图悟道松阴梦》1剧,仅存
  • 阮福洪槢阮福洪槢(越南语:Nguyễn Phúc Hồng Tập/.mw-parser-output .han-nom{font-family:"Nom Na Tong","Han-Nom Gothic","Han-Nom Ming","HAN NOM A","HAN NOM B","Ming-Lt-HKSC
  • 伊藤纯平伊藤纯平(1993年5月10日-),日本演员,尊尼事务所旗下的Johnny's Jr.成员之一。在加入尊尼事务所前为中央儿童剧团所属。东京都出身。