云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统实践报告

操作系统实践报告

  • 62 次阅读
  • 3 次下载
  • 2025/12/12 3:49:27

j=i; if(i%2==0){ sum1+=1/(2*j-1); }

// printf(\

if(i%2==1){ sum2+=1/(2*j-1); } }

// printf(\

sum=sum2-sum1; // printf(\// printf(\

result=malloc(sizeof(result)); result->sum=sum; return result; }

int main(){ int i; float j;

float sum1=0,sum2=0,sum=0; for(i=1;i<=LEN/2;i++){ j=i; if(i%2==0){ sum1+=1/(2*j-1); }

if(i%2==1){ sum2+=1/(2*j-1); } }

sum=sum2-sum1; // printf(\ pthread_t sub;

pthread_create(&sub,NULL,subThread,NULL); struct result *result;

pthread_join(sub,(void **)&result); sum+=result->sum;

printf(\ return 0; }

pi2.c: 使用N个线程根据莱布尼兹级数计算PI

? ? ? ?

思路:

设计算公式前1000项,读取用户输入的线程数目N,通过

pthread_create(&workers[i-1],NULL,compute,myparam);产生N个线程,并且通过myparam设置每一个线程计算的起始项和终止项,通过pthread_join(workers[j],(void **)&myresult);等待每个线程结束并通过result获取结果,将结果相加即可。 源代码:

#include

与上一题类似,但本题更加通用化,能适应N个核心,需要使用线程参数来实现 主线程创建N个辅助线程

每个辅助线程计算一部分任务,并将结果返回

主线程等待N个辅助线程运行结束,将所有辅助线程的结果累加

#include #include #include

#define LEN 10000

#define MAX_WORKERS 100 struct param{ int start; int end; };

struct result{ float sum; };

void *compute(void *arg){

int i; float j;

struct param *myparam; myparam=(struct param *)arg; int start=myparam->start; int end=myparam->end; struct result *myresult;

float sum1=0,sum2=0,sum3=0; for(i=start;i<=end;i++){ j=i; if(i%2==0){ sum1+=1/(2*j-1); }

if(i%2==1){ sum2+=1/(2*j-1); } }

myresult=malloc(sizeof(struct result)); myresult->sum=sum2-sum1; return myresult; }

int main(){

搜索更多关于: 操作系统实践报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

j=i; if(i%2==0){ sum1+=1/(2*j-1); } // printf(\ if(i%2==1){ sum2+=1/(2*j-1); } } // printf(\ sum=sum2-sum1; // printf(\// printf(\ result=malloc(sizeof(result)); result->sum=sum; return result; } int main(){ int i; float j; float sum1=0,sum2=0,sum=0; for(i=1;i<=LEN/2;i++){ j=i; if(i%2=

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com