一、创建线程
pthread_join(pthread_t *tid,const pthread_attr_t *attr,void *(*start_routine)(void*) ,void *arg)
参数:
@tid线程号
@*(*start_routine)(void*)回调函数,即线程要执行的任务
其余参数默认NULL
二、等待
pthread_join(pthread_t *tid,void **reval)
返回值写该reval的指向即修改指针
三、结束
pthread_exit(void *retval)
结束线程
pthread_exit(pthread_t tid)
四、线程互斥
pthread_mutex_t loc;定义一把锁名字为loc
pthread_mutex_init(&loc,NULL) 初始化锁
pthread_mutex_lock ;给临界区上锁
pthread_mutex_unlock; 给临界区解锁
一般一个临界资源需要一把锁,将临界资源与锁放入一个结构体
五、线程同步
sem_t w,r;
定义信号量w,r;
int sem_init(sem_t *sem ,option,int value)
@sem 信号量
@option选项 默认写NULL
@value 初始值
set_wait(sem_t *sem)
信号量减1
相当于P 操作
set_post(sem_t *sem)
信号量加1
相当于V操作