// Parallel.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include

#include

static long num_steps = 100000;

const int numThreads = 4;

double step, pi;

CRITICAL_SECTION g_cs;

double sum = 0.0;

DWORD WINAPI countFunc(LPVOID pArg) {

double x;

int i;

int temp = *(int *)pArg;

int start = (temp*num_steps) / 4;

int end = start + num_steps / 4;

for (i = start; i < end; i++) {

EnterCriticalSection(&g_cs);

x = (i + 0.5)*step;

sum = sum + 4.0 / (1.0 + x*x);

LeaveCriticalSection(&g_cs);

}

return 0;

}

void main()

{

int i;

HANDLE hThread[numThreads];

step = 1.0 / (double)num_steps;

int tNum[numThreads];

InitializeCriticalSection(&g_cs);

for (int i = 0; i < numThreads; i++) {

tNum[i] = i;

hThread[i] = CreateThread(NULL, 0, countFunc, (LPVOID)&tNum[i], 0, NULL);

}

WaitForMultipleObjects(numThreads, hThread, TRUE, INFINITE);

DeleteCriticalSection(&g_cs);

pi = step * sum;

printf("PI = %12.9f\n", pi);

system("pause");

}

linux多进程编程计算圆周率,中值积分定理计算PI值的多线程实现相关推荐

  1. Linux -- 多进程编程之 - 守护进程

    内容概要 一.守护进程概述 二.守护进程创建 2.1.创建子进程,父进程退出 2.2.在子进程中创建新会话 2.2.1.进程组和会话期 2.2.2.setsid()函数说明 2.3.改变当前工作目录 ...

  2. LINUX 多进程编程 C语言实例

    LINUX多进程编程 简单实例 1.ps与top命令 查看进程状态 2.系统调用ping,并执行 #include <stdio.h> #include <string.h> ...

  3. Linux多进程编程

    fork系统调用 #include <sys/types.h> #include <unistd.h>/* Clone the calling process, creatin ...

  4. c语言多进程编程,C语言中的多进程

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 序言 为了充分利用计算机中的多核CPU,计算机提供了两个接口使用多核CPU,两个接口分别是:多进程.多线程.本编文章将介 ...

  5. Linux多进程编程之在线词典

    在线词典是基于Linux 多进程并发服务器编程,由服务器端和客户端构成,客户端可以运行在多个不同的主机上连接服务器,服务器对员工信息的操作结果通过数据库sqlite来保存.当用户登录后,根据用户名判断 ...

  6. python计算圆周率_用python计算圆周率Π

    一.要求: 1.计算到圆周率后面越多位越好. 2.用进度条显示计算的进度. 3.要求给出圆周率Π的具体计算方法和解释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 反复执行以 ...

  7. 用python计算圆周率_用python计算圆周率π

    原博文 2020-03-22 15:32 − 用python计算圆周率π 一.要求 1.要起义能计算到圆周率后面越多位越好. 2.用进度条显示计算的进度,能给出越多种进度条越好. 3.要求给出圆周率π ...

  8. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  9. 用python计算圆周率_用python计算圆周率PI

    一.计算圆周率PI的方法 (一)公式法: 1 #CalPiV1.py 2 pi =03 N = 100 4 for k inrange(N):5 pi += 1/pow(16, k) * (4 / ( ...

  10. java语言计算圆周率_Java语言简单计算圆周率完整示例

    本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...

最新文章

  1. 集成学习需要理解的一些内容
  2. Lazy Load, 延迟加载图片的 jQuery 插件
  3. ping 出现(DUP)以及连接虚拟机ssh自动断开
  4. 微软认知服务应用秘籍 – 与机器人聊知识
  5. 设计一个安全对外的API接口,需要考虑哪些方面?
  6. 蓝桥杯2019真题-完全二叉树的权值
  7. C# 获取文件名及扩展名【转】
  8. 【深度学习】损失函数记录
  9. Android-EventBus 使用以及区别
  10. 软件开发项目管理经验总结
  11. visual studio 2019/2022 安装时卡住,一直正在提取文件时的亲测有效的解决方案
  12. 百度SiteApp构建网站APP
  13. 2010总结,2011展望
  14. 剑指offer中使用辅助栈方法的题目的整理(待更)
  15. xshell不能通过账户密码连接虚拟机
  16. PIO操作与DMA操作
  17. python循环案例:模拟银行ATM存款取款
  18. 由一位坛友的布局想到的定位问题:absolute和relative
  19. 【论文翻译笔记】Test Roll: Profit-Maximizing A/B Tests
  20. A Novel Proof-of-Reputation Consensus for Storage Allocation in Edge Blockchain Systems 精读笔记(三)

热门文章

  1. Spring整合ActiveMQ完成消息队列MQ编程
  2. class.getResourceAsStream与class.getClassLoader().getResourceAsStream区别
  3. SQLyog连接虚拟机中docker中的mysql过程详解,并解决2003错误
  4. 性能测试(05)-表达式和业务关联-json关联
  5. QML 性能优化建议(一)
  6. 肝了十几个小时的java反射,希望对大家有所帮助吧!
  7. JS / 闭包的理解
  8. 启明云端分享|直接用ESP32-S2和ESP32-C3驱动1.54寸串口屏,有哪些区别呢,他们的亮点又有哪些呢
  9. Altium designer中电路图保存在word中
  10. php myadmin utf,phpmyadmin在哪里设置utf_8