POSIX线程

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

相关

  • 迈诺特乔治·迈诺特(George Richards Minot,1885年12月2日-1950年2月25日)是一位美国医学家,出生于麻塞诸塞州的波士顿。由于关于贫血的研究而与乔治·惠普尔(George Hoyt Whipple)及威廉
  • 过继过继,亦作过房、过嗣、立嗣(立继及命继),是传统宗族观念中的一种收养行为,主要目的出于“为宗”延续宗嗣,使祖先可继续不受中断地享有祭祀,故立男性继承人而为之。古人因考量祖先不
  • 奥勒岗州俄勒冈州(英语:State of Oregon)是美国的一个州,位于美国西北的太平洋沿岸,西临太平洋、北接华盛顿州、东面是爱德荷州、南面是加利福尼亚州和内华达州。2012年人口3,899,353。州
  • 回转半径回转半径是一个物理量。它可以用来计算转动惯量。当一支力矩作用于一个物体时,物体会依照转动惯量呈现应有的旋转运动。物体对于一支直轴或质心的回转半径,是此物体所有粒子,对
  • 中央省中央省为巴布亚新几内亚位于南方海岸的省份,其人口规模183,983人(2000年普查),面积29,500平方公里。中央省的首府位于莫尔兹比港,是巴布亚新几内亚的首都。
  • 八文字DNA八文字DNA(英语:Hachimoji DNA,Hachimoji源自日语“八文字”的发音),是一种人工合成的核酸类似物,除含有四种天然DNA中含有的碱基腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)外,还含有另
  • 少女塔 (伊斯坦布尔)少女塔 (土耳其语:Kız Kulesi)又名勒安得耳塔,是土耳其伊斯坦布尔博斯普鲁斯海峡南口处的一座古塔,距离亚洲一侧的于斯屈达尔海岸200米。少女塔由拜占庭帝国皇帝阿历克塞一世
  • 厄休拉·勒古恩厄休拉·勒古恩(英语:Ursula Kroeber Le Guin,1929年10月21日-2018年1月22日),美国科幻、奇幻与女性主义与青少年儿童文学作家。著有小说20余部,及诗集、散文集、游记、文学评论与
  • 陈祖恩陈祖恩(1949年5月-)中国历史学家、作家,专于中国近代史和上海历史研究。是上海社会科学院历史研究所特聘研究员。被学界公认为研究在上海日本人群体和其历史的第一人。精通日文
  • 海陆 (演员)海陆(1984年10月15日-),女,河南郑州人,中国演员。毕业于上海戏剧学院表演系。与张睿、李佳航、高梓淇、李晟、孙耀琦、万茜、麦迪娜、路宏为琼瑶力捧的第三代演员。2006年海陆出演