linux进程线程管理实验报告(9)

时间:2025-07-09

进程线程,死锁实验报告

pthread_mutex_unlock(&mutex2);

pthread_mutex_unlock(&mutex1);

}

}

void critical_section(int thread_num,int i){

printf("Thread%d:%d\n",thread_num,i);

}

1. 你预想deadlock.c 的运行结果会如何?

2. deadlock.c 的实际运行结果如何?多次运行每次的现象都一样吗?为什么会这样?

四、实验结果

4.1 通过加锁可修改thread.c程序,使得main_counter与sum值同步,源代码如下:

#include<stdio.h>

#include<sys/types.h>

#include<unistd.h>

#include<ctype.h>

#include<pthread.h>

#define MAX_THREAD 3

unsigned long long main_counter,counter[MAX_THREAD];

void* thread_worker(void*);

int main(int argc,char argv[]){

int i,rtn;

char ch;

pthread_t pthread_id[MAX_THREAD]={0};

for(i=0;i<MAX_THREAD;i++){

pthread_create(&pthread_id[i],NULL,thread_worker,(void*)i);

}

do{

unsigned long long sum=0;

for(i=0;i<MAX_THREAD;i++){

sum+=counter[i];

printf("counter[%d]=%llu\n",i,counter[i]);

}

printf("main_counter=%llu/sum=%llu\n",main_counter,sum);

}while((ch=getchar())!='q');

return 0;

}

linux进程线程管理实验报告(9).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219