linux进程线程管理实验报告(8)
时间:2025-07-09
时间:2025-07-09
进程线程,死锁实验报告
3.1找到thread.c 的代码临界区,用临界区解决main_counter 与sum 不同步的问题。
3.2阅读下列代码,回答问题:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<ctype.h>
#include<pthread.h>
#define LOOP_TIMES 1000
pthread_mutex_t mutex1=PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t mutex2=PTHREAD_MUTEX_INITIALIZER;
void* thread_worker(void *);
void critical_section(int threadd_num,int i);
int main(int argc,char *argv[]){
int rtn,i;
pthread_t pthread_id=0;
rtn=pthread_create(&pthread_id,NULL,thread_worker,NULL);
if(rtn!=0){
printf("pthread_create ERROR!\n");
return -1;
}
for(i=0;i<LOOP_TIMES;i++){
pthread_mutex_lock(&mutex1);
pthread_mutex_lock(&mutex2);
critical_section(1,i);
pthread_mutex_unlock(&mutex2);
pthread_mutex_unlock(&mutex1);
}
pthread_mutex_destroy(&mutex1);
pthread_mutex_destroy(&mutex2);
return 0;
}
void *thread_worker(void* p){
int i;
for(i=0;i<LOOP_TIMES;i++){
pthread_mutex_lock(&mutex2);
pthread_mutex_lock(&mutex1);
critical_section(2,i);
上一篇:数学教案第一周