1、线程
创建线程
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
参数:- thread存储线程ID
- attr线程属性,NULL默认属性8M的栈空间
- start_routine线程的执行体函数
- arg用于向start_routine传递的参数
返回:成功 return 0;
结束一个进程
void pthread_exit(void *retval);
等待一个进程结束
int pthread_join(pthread_t thread, void **retval);
2、互斥量
初始化互斥量
int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutexattr_t * attr);
上锁
int pthread_mutex_lock(pthread_mutex_t *mutex);
解锁
int pthread_mutex_unlock(pthread_mutex_t *mutex);
销毁互斥量
int pthread_mutex_destroy(pthread_mutex_t *mutex);
3、条件量
初始化条件量
int pthread_cond_init(pthread_cond_t * cond, const pthread_condattr_t * attr);
产生一个条件量,并发送
int pthread_cond_signal(pthread_cond_t *cond);
等待一个条件量的产生,如果条件量已经发送过,wait将处于死等状态
int pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t *mutex);
销毁条件量
int pthread_cond_destroy(pthread_cond_t *cond);
4、信号量
初始化信号量
int sem_init(sem_t *sem, int pshared, unsigned int value);
P操作:消耗一个信号量,为0时阻塞
int sem_wait(sem_t *sem);
V操作:产生一个信号量
int sem_post(sem_t *sem);
销毁信号量
int sem_destroy(sem_t *sem);
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。