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,失败时返回错误代码

转载于:https://www.cnblogs.com/ArthurSJiang/archive/2012/08/18/2645472.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值