posix线程库<一>


POSIX线程库的使用方法:

1. 与线程有关的函数构成了一个完成的系列,绝大多数函数的名字有是以“pthread_"开头的

2. 要使用这些函数库,要通过引入<pthread.h>

3. 链接这些线程函数库时要使用编译器命令的”-lpthread"


线程和进程比较:

进程 线程

pid_t pthread_t

fork() pthread_create()

waitpid pthread_join()

exit() pthread_exit()

在main函数中调用return 在线程入口函数中调用return

僵进程 僵线程

waitpid() pthread_join()

kill(他杀) pthread_cancel()(他杀)


函数介绍:

int pthread_create(pthread_t * thread, const pthread_attr * attr, void *(*start_routine)(void*), void * arg);
功能:创建一个新的线程

参数:

thread:返回线程ID

attr :设置线程的属性,attr为NULL表示使用默认属性

start_routine: 是个函数地址, 线程启动后要执行的函数

arg: 传给线程启动函数的参数

返回值:成功返回0,失败返回错误码


错误检查:

1.传统的一些函数是,成功返回0,失败返回-1,并且对全局变量errno赋值以指示错误

2.pthreads函数出错时不会设置全局变量errno(而大部分其他POSIX函数也会这样做)。而是将错误代码通过返回值返回

3.pthreads同样也提供了线程内的errno变量,以支持其他使用errno的代码,对于pthreads函数的错误,建议通过返回值业判定,因为读取返回值要比读取线程内的errno变    量的开销更小


void pthread_exit(void*value_ptr)

功能:线程终止

参数:value_ptr:不要指向一个局部变量

返回值:无返回值,跟进程一样,线程结束的时候无法返回到他的调用者


pthread_self(void)

功能:返回线程ID

返回值:成功返回0;


int pthread_cancel(pthread_t thread)

功能:取消一个执行中线程(一个线程可以杀死另外一个线程)

参数:thread:线程ID

返回值:成功返回0,失败返回错误码

pthead_detach()

功能:将一个线程分离

参数:线程ID

返回值:成功返回0;失败返回错误码



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值