POSIX标准中支援的执行绪函式库称为pthread的,我们可以透过pthread的结构与调用的pthread_create()函数执行某个函数指标,以建立新的执行绪。范例显示了一个利用pthread的建立两个执行绪,分别不断印出乔治与玛丽的程式,该程式中总共有三个执行主体,第一个是print_george(),第二个是print_mary(),第三个是主程式本身。由于每隔1秒印一次乔治,但每隔0.5秒就印一次玛丽,因此执行结果会以乔治,玛丽,乔治,乔治,玛丽的形式印出。
范例6利用pthread的函式库建立执行绪的范例
#包括<pthread.h>的/ /引用pthread的函式库
#包括<stdio.h>
无效print_george(无效的参数){/ /每隔一秒钟印出一次乔治的函数
而(1){
输出(“乔治\ n”);
睡觉(1);
}
返回NULL;
}
无效print_mary(无效的参数){/ /每隔一秒钟印出一次玛丽的函数
而(1){
printf(“请玛丽\ n”);
睡觉(2);
}
返回NULL;
}
廉政的main(){/ /主程式开始
pthread_t线程,线程/ /宣告两个执行绪
pthread_create的(线程,NULL,&print_george,NULL); / /执行绪print_george
pthread_create的(线程,NULL,&print_mary,NULL); / /执行绪print_mary
而(1){/ /主程式每隔一秒钟
printf的(“---------------- \ n”); / /就印出分隔行
睡觉(1); / /停止一秒钟
}
返回0;
}
执行过程与结果
$ gcc的thread.c O线程
$。/线程
乔治
玛丽
-------------------------
乔治
-------------------------
乔治
玛丽
-------------------------
乔治
-------------------------
...