一、线程 基本API(任意一个线程exit会导致整个线程退出)
1.1线程库 pthread
注意:要做同步和互斥
调用API
1)创建线程 pthread_create
#include <pthread.h>
int pthread_create(pthread_t *thread, const
pthread_attr_t *attr, void *(*routine)(void *), void *arg);
成功返回0,失败时返回错误码 (注意,这里不可以perror,只能用strerror)
thread 线程对象
attr 线程属性,NULL代表默认属性
routine 线程执行的函数
arg 传递给routine的参数 ,参数是void * ,注意传递参数格式,
pthread_t pthread_self(void) 查看自己的TID
2)线程回收 pthread_join 或者detach也行
#include <pthread.h>
int pthread_join(pthread_t thread, void **retval);
成功返回0,失败时返回错误码
thread 要回收的线程对象
调用线程阻塞直到thread结束
*retval 接收线程thread的返回值
3)线程结束 pthread_exit (大部分线程一直在跑可以不用)
#include <pthread.h>
void pthread_exit(void *retval);
结束当前线程
retval可被其他线程通过pthread_join获取
线程私有资源被释放
4ÿ