一 代码
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/time.h>
#include <string.h>
#include <cstdlib>
int gcn = 0;
pthread_mutex_t mutex; //共享锁
pthread_rwlock_t rwlock; //读写锁
void *thread_1(void *arg) {
int j;
volatile int a;
for (j = 0; j < 10000000; j++) {
pthread_mutex_lock(&mutex); // 上锁
a = gcn; //只读全局变量gcn
pthread_mutex_unlock(&mutex); //解锁
}
pthread_exit((void *)0);
}
void *thread_2(void *arg) {
int j;
volatile int b;
for (j = 0; j < 10000000; j++) {
pthread_mutex_lock(&mutex); // 上锁
b = gcn; //只读全局变量gcn
pthread_mutex_unlock(&mutex); //解锁
}
pthread_exit((void *)0);
}
void *thread_3(void *arg) {
int j;
volatile int a;
for (j = 0; j < 10000000; j++) {
pt