POSIX线程

✍ dations ◷ 2025-11-24 03:26:41 #应用程序接口,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'交替出现。

相关

  • 拓扑学在数学里,拓扑学(英语:topology)也可写成拓朴学,或意译为位相几何学,是一门研究拓扑空间的学科,主要研究空间内,在连续变化(如拉伸或弯曲,但不包括撕开或黏合)下维持不变的性质。在拓扑
  • 国家地理杂志(2013年12月)《国家地理》(英语:National Geographic),原名《国家地理杂志》(National Geographic Magazine),是美国国家地理学会的官方杂志,在国家地理学会1888年成立后的9个月开始
  • 德比城德比(英语:Derby,i/ˈdɑːrbi/ DAR-bee)是位于英格兰东米德兰兹的城市与单一管理区。它地处德文特河(River Derwent)河畔,德比郡(名誉郡)的南部。据2011年时的统计,城市人口为248,700
  • 亚氯酸亚氯酸是氯(III)的含氧酸,化学式为HClO2,是一种弱酸,但在酸性溶液中是一种极强的氧化剂。纯亚氯酸不稳定,容易分解为盐酸、氯酸和二氧化氯,但生成的盐类——亚氯酸盐相对稳定,亚氯
  • 德国的核能发电在2011年,核电在德国所有发电中占了17.7%,2010年的比例则为22.4%。德国的核能发电开始于1950年代和60年代的研究反应堆,而首次的商业核电厂则是成立在1969年。在近十年,核电经常
  • 椅套椅套可以是套在椅子上的织物,用于防脏,洗涤时只需将椅套拆下洗涤就行。椅套的品种也有多种在,简单的有铺盖式椅套,精致有贴合式椅套。不同的椅子有不同的椅套,如沙发套、扶手椅套
  • 熊顿熊顿(本名:项瑶,1982年10月19日-2012年11月16日)是中国一名女性绘本漫画家,因其在罹患非霍奇金淋巴瘤后在微博上以漫画形式记录其患病和治疗过程,并以乐观积极的态度而获得民众关注
  • 黄国黄国,嬴姓诸侯国,国民是东夷中黄夷的后代。商代黄夷已在淮水之滨建立国家,与商王的关系不是十分和谐,卜辞中有“伐于黄尹”的记载。周人灭商后,黄人归服,得以保留。从出土的东周时
  • 李熙 (北朝)李熙(?-?),生于北魏,曾任金门镇将,后镇守武川镇。为西凉皇帝李暠的后代,唐朝李渊家族追尊其为先祖。唐初追封宣简公,唐高宗时追封为为皇帝,庙号献祖,谥号宣皇帝。据《旧唐书》,李熙为李
  • 中道裕大中道裕大(1979年5月8日-),日本男性漫画家。出身于京都府北桑田郡京北町(日语:京北町)(现:京都市右京区)。AB型血。他的作品都在小学馆Sunday系列连载,代表作有《少年独立国(日语:ハルノク