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

时间:2025-07-09

进程线程,死锁实验报告

四、实验结果

4.1 补充完全的源程序

#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];

/* unsigned long long是比long还长的整数 */

void* thread_worker(void*);

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

int i,rtn;

char ch;

pthread_t pthread_id[MAX_THREAD]={0};/* 存放每个线程的id */ for(i=0;i<MAX_THREAD;i++){

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

/*用pthread_create建一个普通的线程, 线程id存入pthread_id[i], 线程执行的函数是thread_worker,并i作为参数传递给线程 */

}

/* 用户按一次回车执行下面的循环体一次。按q退出 */

do{

unsigned long long sum=0;

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

sum+=counter[i]; /* 求所有线程的counter的和 */

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

}

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

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

return 0;

}

void* thread_worker(void* p){

int thread_num;

thread_num=(int)p; /*把main中的i的值传递给thread_num */

for(;;){

main_counter++;

counter[thread_num]++;

}

}

4.3 回答上述实验内容中的问题

1. 试验运行前我认为前三列数不会相等,因为三个线程运行次数是随机的,结

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

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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