线程学习总结:
线程的创建与退出函数
pthread_creat(&thid,NULL,threadFunc,NULL);
pthread_exit(NULL);
线程的退出
pthread_join(thid,(void**)&threadRet)//可以接受long类型
void pthread_cleanup_push(cleanFunc,void *arg);
void pthread_clean_pop(int execute);
互斥锁创建:
静态方式:pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
动态方式:
pthread_mutex_t lock;
pthread_mutex_init(&lock,NULL);
锁的销毁:
pthread_mutex_destory(&lock);
锁的操作:
加锁:pthread_mutex_lock(&lock)
解锁:pthread_mutex_unlock(&lock)
测试加锁:pthread_mutex_trylock(&lock)
线程的同步:
条件变量的初始化:
静态方式:pthread_cont_t cond=PTHRED_COND_INITIALIZER;
动态方式:pthread_cond_init(&cond,NULL);//成功返回0,失败返回错误码
条件变量的销毁:pthread_cond_destroy(pthread_cond_t *cond);
//只有在没有线程在条件变量上等待的时候,才能注销这个条件变量,否则返回EBUSY
条件变量的等待:pthread_cond_wait(&cond,&mutex);
pthread_cond_timedwait(&cond,&mutex,&time);
条件变量的激发:pthread_cond_signal(&cond);//唤醒一个等待的线程
pthread_cond_broadcast(&cond);//唤醒所有等待的线程
线程接口总结
最新推荐文章于 2023-01-09 17:32:38 发布