POSIX线程

✍ dations ◷ 2025-04-27 06:59: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'交替出现。

相关

  • 莫德斯托市莫德斯托 (英语:Modesto, California),是美国加利福尼亚州斯坦尼斯劳斯县的县治。面积93.1平方公里,2006年人口212,756人。1870年开埠,1884年建市。
  • 米特·罗姆尼威拉德·米特·罗姆尼(Willard Mitt Romney,1947年3月12日-)是美国商人和政治人物、现任犹他州联邦参议员。曾担任第70任马萨诸塞州州长,2012年美国总统选举的共和党提名候选人,败
  • 格里戈里斯·马科斯格里戈里斯·马科斯(希腊语:Γρηγόρης Μάκος)是希腊的一位足球运动员。在场上司职防守型中场。他现在效力于德国足球乙级联赛球队1860慕尼黑。他也代表希腊国家足
  • 大卫·贝尼奥夫大卫·贝尼奥夫(David Benioff,1970年9月25日-),是一位美国犹太裔小说家、编剧及监制,其最著名电视作品为和D·B·魏斯共同改编的《权力的游戏》,来自乔治·R·R·马丁的中世纪史诗
  • 蔡肇庆蔡肇庆(?-?),字以祥,福建漳州府诏安县人,民籍,明朝政治人物。福建乡试第十八名,万历十一年(1583年)癸未科会试第二百九十七名,登三甲第二百一十名进士。官至翰林院编修、刑部主事。曾祖蔡
  • 猪头皮猪头皮可以指:
  • 太阳磁场太阳磁场通常是根据在磁场中光谱线分裂的塞曼效应(Zeeman effect)测量的,目前的测量精度大约为0.3高斯。太阳磁场主要在太阳大气层 - 光球、色球和日冕低层中,而在太阳内部或日
  • 周汝钧周汝钧(1858年-1906年),本名常俭,字约存,别字节生,号省斋。广东番禺县慕德里司南岗乡(今广州市白云区江高镇南岗村)人。周汝钧自幼颖悟,过目成诵。光绪八年(1882)中举人,光绪十八年(1892年
  • 方佐 (明朝)方佐(?-?),中国浙江宁波人,是一名明朝政治人物。方佐曾经大约在宣德年间任上海县知县一职,其前任暂无考证资料。1437年由张祯接任。
  • 我爱贝克汉姆《我爱贝克汉姆》(英语:)是一套2002年的英国喜剧片,由古莉·查夏执导,柏米达·娜加及凯拉·奈特莉等主演。电影英文原名直译是“像贝克汉姆一样弄弯它”,是指贝克汉姆很拿手的射弯