POSIX线程

对与单处理器设备多线程往往不能完全发挥效率,同时运行多个线程一般是通过系统轮询给不同的线程分配cpu时间片;但在多处理器设备上多线程的效率极高,可以进行真正意义上的同时运行;多线程的高效率带来的问题是程序设计的复杂性。

现行标准由NPTL项目组产生。
在编译多线程程序时要加宏_REENTRANT以使用可重入功能。
程序需包含头函数pthread.h(p应该代表POSIX)。
编译命令(非默认支持NPTL线程库)
$ cc -D_REENTRANT -I/usr/include/nptl oox.c
-o ooxx -L/usr/lib/nptl -lpthread
编译命令(默认支持NPTL线程库)
$ cc -D_REENTRANT ooxx.c -o ooxx -lpthread
相关函数:
#include<pthread.h>
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
thread指向新创建的线程标识符
attr设置线程属性,一般设为NULL
start_routine是一个函数指针,指示由线程运行的函数
arg提供传递给该函数的指针
成功时返回0,失败时返回错误代码
#include<pthread.h>
void pthread_exit(void *retval);
终止调用它的线程并返回一个指向某个对象的指针,但不能指向局部变量,在线程结束时局部变量失效
#include<pthread.h>
int pthread_join(pthread_th, void **thread_return);
th指定要等待的线程
thread_return指向线程返回值
成功时返回0,失败时返回错误代码
posted @ 2012-08-18 15:06  ArthurSJiang  阅读(167)  评论(0编辑  收藏  举报