线程同步之互斥量
操作系统编程--线程同步问题 生产者和消费者问题 互斥量是最简单的线程同步的方法 互斥量(互斥锁),处于两态之一的变量:解锁和加锁 两个状态可以保证资源访问的串行 操作系统直接提供了互斥量的API 开发者可以直接使用API完成资源的加锁、解锁操作 具体操作 ◆ pthread_mutex_t //用于定义线程互斥锁对象 ◆ pthread_mutex_lock(&mutex) //上锁操作 ◆ pthread_mutex_unlock(&mutex) //开锁操作 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <vector> pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int num = 0; void *producer(void*){ int times = 10000000; while(times --){ //不加锁操作则会导致出现共享资源不统一问题 即num 最后不为0 pthread_mutex_lock(&mutex); num += 1; pthread_mutex_unlock(&mutex); } } void *comsumer(void*){ int times =