Linux下多线程编程__线程的创建pthread_create与退出pthread_exit,等待当前线程退出pthread_join,获取线程ID pthread_self
2010-11-24 12:31:06| 分类: Linux高性能开发 |举报 |字号 订阅
1、头文件:
#include <pthread.h>
2、线程描述符:
pthread_t
3、创建线程:
int pthread_create(
//获取创建出来的子线程的线程ID
pthread_t *restrict thread,
//设置线程的属性,通常使用NULL。
const pthread_attr_t *restrict attr,
const pthread_attr_t *restrict attr,
//函数名,函数是线程运行的实体。这里是一个void *fun_name(void *value)的函数。
void *(*start_routine)(void*),
void *(*start_routine)(void*),
//传递给子线程的变量(这里是将一个变量强制类型转换成void *类型,而不是取变量的地址。)
void *restrict arg
);
4、阻塞等待指定的线程推出:
int pthread_join(
//等待推出的线程ID
pthread_t thread,
//获取线程推出时的返回值
void ** value_ptr; //这是一个void *类型变量的地址。
);
5、线程退出:
void pthread_exit(
//将value_ptr所指向空间的值返回给等待它结束的线程。pthread_join等待的进程的返回只value_ptr的值来自pthread_exit的参数;
void * value_ptr;
);
注意::
注意::
pthread_exit函数有时候和return函数的作用是一样的,但是,如果在线程中调用了其他函数,在这个函数中使用return这个函数返回,线程并没有结束,
而在线程中调用的其他函数中使用pthread_exit(),那么整个线程就结束了,而不是这个函数结束。
6、获取线程的ID:
pthread_t pthread_self(); //获取当前线程的ID