// 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代码,中值积分定理计算PI值的多线程实现相关推荐

  1. zynq amp Linux+bare裸跑代码中不能响应irq61中断

    zynq amp, Linux+bare,裸跑代码中,外部中断irq61为什么响应了几百或者几千次后就不再响应了? 这个问题很是奇怪,如果一个irq61中断没响应还好纠错,一个没响应直接检查irq61 ...

  2. python计算圆周率代码_使用 Python 计算 π 值

    π是一个无数人追随的真正的神奇数字.我不是很清楚一个永远重复的无理数的迷人之处.在我看来,我乐于计算π,也就是计算π的值.因为π是一个无理数,它是无限的.这就意味着任何对π的计算都仅仅是个近似值.如果 ...

  3. 张飞硬件设计与开发笔记(1):电路中阻值的计算和电源电路中滤波电容的计算

    本篇文章将介绍电阻,电容的作用,并通过实际例题计算电阻的值,以及滤波电容的具体计算方法 通常电路设计包括模拟电路,数字电路,视频电路,但是,他们的本质和基础都是由模拟电路而来,所以,学好了模拟电路,在 ...

  4. linux多进程编程计算圆周率,中值积分定理计算PI值的多线程实现

    // Parallel.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include #include static long num_ ...

  5. oracle 中的pi,Oracle中实现圆周率计算(一)

    今天两个同事用JAVA实现圆周率一百位小数的实现.一个同事问我要不要试试,由于很长时间没有写过JAVA代码,而且本身JAVA的水平就很差,于是打算用ORACLE实现. 其实Oracle中使用现成的函数 ...

  6. Linux 平台 C/C++ 代码中设置线程名

    一般来说,Linux 平台的 C/C++ 程序可以用 prctl() 或 pthreads 的 pthread_setname_np() 接口为一个线程设置线程名.prctl() 可以用于为当前线程设 ...

  7. linux程序计数器,如何在C中打印程序计数器的确切值

    小编典典 您应该能够使用ARM编译器工具链中的__current_pc()内在函数来确定PC (ARM编译器支持许多与GCC相同的扩展).*这是ARM特有的: int main () { printf ...

  8. 查找出现次数 oracle,ORACLE计算某个列中出现次数最多的值

    如下例所示,查找deptno=20部门中sal出现次数最多的值. SQL> select sal 2  from 3  ( 4  select sal,dense_rank() over(ord ...

  9. android 有值代码,Android:如何在代码中获取“listPreferredItemHeight”属性的值?

    这样做: TypedValue value = new TypedValue(); ((Activity)context).getTheme().resolveAttribute(android.R. ...

最新文章

  1. C++模板之特化与偏特化详解
  2. 【C++】46.宏定义##连接符和符#的使用
  3. php 5.5.7.tar.gz,编译 php-5.5.26.tar.gz
  4. CodeIgniter框架下载辅助函数的一个小bug
  5. SSH、SSL与HTTPS
  6. zenmap工具说明及常用参数解释
  7. 我的手绘2013.01.27
  8. python解决单调栈问题
  9. Mysql记录历史执行的sql
  10. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
  11. Microsoft® Silverlight™ Streaming by Windows Live™
  12. MySQL设计说明书_数据库详细设计说明书-模板.doc
  13. 关于Zipf定律的理解和python实现
  14. 5.3 使用数据结构对真实世界建模
  15. 商城APP开发关键板块
  16. java中钟摆运动的代码_仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)...
  17. 在Word文档里如何快速返回目录页-Office学习
  18. jvm:ObjectMonitor源码
  19. oracle dba 培训教程 第14章 管理权限
  20. Arduino开发板连接振动传感器模块

热门文章

  1. 比特币ABC推出最新版本后讨论网络不兼容性
  2. JAVA开发:开发属于你的第一个Java程序
  3. HBase 与 MapReduce 集成
  4. python要点简要-一日精通python
  5. JavaScript有关的10个怪癖和秘密(转)
  6. python3+selenium入门08-鼠标事件
  7. 逻辑心理测试题:三囚分汤
  8. 项目管理中常用到的简便工具
  9. 解决chrome extension无法下载的问题
  10. MySQL语句相关经验总结