代码说明
信号量用来各线程中通信。我简单的将信号量想象成烽火台发出的烟,向远处传达信号。
代码尝试将globVar增加20000次,一个线程增加10000次。用信号量来代替互斥锁,使一次只有一个线程对globVar变量进行操作。代码经过DEV C++测试多次,其中5次中有一次错误的获得19995
代码实例
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <semaphore.h>
void *thread_function(void *arg);
void *thread_function1(void *arg);
void *thread_function2(void *arg);
/* 信号量 */
sem_t bin_sem;
/* 互斥锁 */
pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;