多线程编程

线程的创建和退出:

 

      另一种是调用pthread_exit函数主动退出。最后,进程终止函数exit函数,一旦结束了进程,那么此进程中所有线程都将无条件终止。

 

 

 

     创建线程通常使用的函数是pthread_create. 在线程创建以后,就开始运行相关的线程函数,在该函数运行完之后,该线程也就退出了。这是线程退出的一种方法: 运行完毕,自动退出。

一个注意点:在默认线程属性下,如果一个进程有很多线程在同时运行,一个线程在退出以后,当前线程所占用的资源并不会随着线程的终止而得到释放。因为所有处在一个进程中的线程共享资源。

线程中还有一个常用函数:pthread_join函数可以用于将当前线程挂起,等待其他线程结束。实际上,这个函数是就是一个线程阻塞函数,调用它的函数将一直等待到被等待的线程结束为止。当函数返回时,被等待线程的资源就被回收。

 

 

pthread_create 函数:

所需文件头:

#include <pthread.h>

函数原型:

int pthread_create((pthread_t*thread,pthread_attr_r*attr,void*(*start_routine)
(void*),void *arg))

函数传入值:

thread:线程标识符

 

attr: 线程属性设置 null表示采用默认

 

start_roitine : 线程函数的启示地址

 

arg :传递给start_routine的参数

函数返回值:

成功:0
出错:-1

 

pthread_join函数

所需文件头:

#include <pthread.h>

函数原型:

int pthread_join ((pthread_t th,void **thread_return))

函数传入值:

th: 等待线程的标识符
thread_return:用户定义的指针,用来存储被等待线程的返回值(不为NULL时)

函数返回值:

成功:0

 

出错:-1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值