一 基本概念:
线程是进程执行的最基本单位,是一个正在运行的函数,通常包括:main线程与兄弟线程。线程间通信共享进程虚拟内存空间。
常用的线程标识:
pthread_t
常用api:
比较线程pid:
int pthread_equal(pthread_t t1, pthread_t t2);
返回线程标识:
pthread_t pthread_self(void);
二 线程常见状态与操作:
1 线程创建
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
其中:线程回填标识、线程属性(常见NULL),线程执行函数入口地址、函数的参数。成功返回0,失败返回错误码。
2 线程的终止
1)线程从启动例程返回,返回值是线程的退出码
2)线程可以被同一个进程中的其他线程取消
3)线程调用void pthread_exit(void *value_ptr);
栈的清理 防止线程意外退出,挂上回调函数,等到栈清理时执行内容
void pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg);
void pthread_cleanup_pop(int execute);
3 线程的取消
先取消后收尸
int pthread_cancel