线程的创建和退出:
另一种是调用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) |
函数传入值: | thread:线程标识符 |
| attr: 线程属性设置 null表示采用默认 |
| start_roitine : 线程函数的启示地址 |
| arg :传递给start_routine的参数 |
函数返回值: | 成功:0 |
pthread_join函数
所需文件头: | #include <pthread.h> |
函数原型: | int pthread_join ((pthread_t th,void **thread_return)) |
函数传入值: | th: 等待线程的标识符 |
函数返回值: | 成功:0 |
| 出错:-1 |