转自:http://blog.csdn.net/xceman1997/article/details/10195563

这两天因工作需要,写了个算法,计算复杂度较高。期望利用多核机器的优势,并行计算,加快运行速度。简单看了看资料,尝试两个小程序。

程序一:函数能并行运行就OK。

[cpp] view plaincopy
  1. DWORD WINAPI Fun(LPVOID lpParamter)
  2. {
  3. cout<<"Fun display"endl;
  4. i++;
  5. }
  6. int main (void)
  7. {
  8. cout << "Now starting to verify multi-thread on windows" << endl;
  9. HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
  10. CloseHandle(hThread);
  11. while(1)
  12. {
  13. cout<<"main display!"<<endl;
  14. Sleep(2000);
  15. }
  16. cout << "Press anykey to bye-bye" << endl;
  17. getchar();
  18. return 0;
  19. }

程序二:传个参数进到并发函数中,如下:

[cpp] view plaincopy
  1. DWORD WINAPI Fun(LPVOID lpParamter)
  2. {
  3. int iCount = *((int*)lpParamter);
  4. int i = 0;
  5. while(i < iCount)
  6. {
  7. cout<<"Fun display in the "<< i << " times" <<endl;
  8. i++;
  9. // Sleep(1000);
  10. }
  11. return iCount;
  12. }
  13. int main (void)
  14. {
  15. cout << "Now starting to verify multi-thread on windows" << endl;
  16. int i = 1000;
  17. HANDLE hThread = CreateThread(NULL, 0, Fun, &i, 0, NULL);
  18. CloseHandle(hThread);
  19. while(1)
  20. {
  21. cout<<"main display!"<<endl;
  22. Sleep(2000);
  23. }
  24. getchar();
  25. return 0;
  26. }

程序三:在写上两个程序的时候,听说OpenMP神器,尝试一下

[cpp] view plaincopy
  1. int main (void)
  2. {
  3. cout << "Now starting to verify multi-thread on windows" << endl;
  4. int iArray [100];
  5. for (int i=0; i<100; i++)
  6. iArray[i] = i;
  7. #pragma omp parallel for num_threads(2)
  8. for (int i=0; i<100; i++)
  9. cout << iArray[i] << endl;
  10. getchar();
  11. return 0;
  12. }

运行的时候,可以看到:1. 双核都在计算;2. 数组实际上是乱序输出(多个线程并发的结果)。

最后我工作中采用的是OpenMP。

简单尝试windows多线程程序相关推荐

  1. [视频]用SQL Server Compact创建简单的Windows应用程序

    今天下午录制了一段 SQL Server Compact 应用程序开发的入门视频,帮助园子里的朋友打开 SQL Server Compact 开发的大门. 技术等级:100 准备环境:Visual S ...

  2. Windows应用程序简介

    我准备从头开始好好学学MFC原理及应用,先从Win API开始学起,不仅要会用,知其然更要知其所以然,这样才能走的更远. 先讲一下Windows应用程序的消息机制,Windows 程序的进行是依靠外部 ...

  3. 桌面应用程序员简单尝试Rich JavaScript Application

    虽然10年前搞过一段时间的Web应用开发,且为所在企业设计了一个基于ASP.NET WebForms(在.NET 1.1的基础上)的Web应用开发框架.但是,后来一直做的都是桌面类的应用,比如Smar ...

  4. (C#)安全、简单的Windows Forms多线程编程 (一)

    (C#)安全.简单的Windows Forms多线程编程  (一) Chris Sells June 28, 2002 翻译:袁晓辉 www.farproc.com farproc#AT#gmail# ...

  5. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

    最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...

  6. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  7. winpython使用教程-使用Python开发windows桌面程序【超简单】

    一.开发前期准备 1. boa-constructor-0.6.1.bin.setup.exe #一个wxWidges的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样, ...

  8. 一次简单的Windows和Linux多线程效率测试

    一次简单的Windows和Linux多线程效率测试 配置 执行时间 源代码 其他 配置 参数 Windows Linux IDE msvc2015 g++ (GCC) 版本 14.0.25420.01 ...

  9. 基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,要求:(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能

    基于列表框的简单选课窗体开发.编写Windows应用程序,设计实现一个简单选课系统,要求: (1)点击"添加"按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加 ...

  10. Windows多线程(一) 最简单的多线程

    本篇系列参考MoreWindows系列秒杀多线程: http://blog.csdn.net/column/details/killthreadseries.html 第一个简单例子:创建一个子线程, ...

最新文章

  1. 第一个python去掉行号
  2. Web前端就业薪资是多少?Web前端要学什么?
  3. CVPR2015深度学习回顾
  4. 被替换的项目不是替换值长度的倍数_如果要在Excel中计算单元格内指定的字符长度,我推荐这两个公式.........
  5. 想学C语言?这些你一定要知道
  6. python中PIL.Image,OpenCV,Numpy图像格式相互转换
  7. nacos修改端口号
  8. 计算机数字雨代码,cmd命令数字雨教程
  9. 通过CN3口直接控制台达伺服电机A2-M(三)
  10. 怎样获取计算机硬盘号,电脑硬盘序列号读取工具
  11. No input file specified. Nginx PHP
  12. Odoo相关资源(持续更新中)
  13. html 自动 生成 日期,自己生成Select列表日期时间
  14. Kubernetes 在本来生活网的落地实践
  15. java中BOM是什么_javaScript中BOM
  16. linux打补丁要选择目录,Linux下patch打补丁命令实例详解
  17. 软考高级 真题 2014年上半年 信息系统项目管理师 论文
  18. 射频电路基础简窥之低噪声放大器
  19. 【方法】blob类型地址的图片下载
  20. Latex并排摆放两张表格

热门文章

  1. 高级I/O-----dup/dup2
  2. Android 助力云计算
  3. 云网络被广泛应用 企业SaaS选型面临五大安全问题
  4. get方式传递参数问题解决经验
  5. GPU图形绘制管线简介
  6. 如何突破织梦后台发布文章的250字符的内容摘要字数限制
  7. 多项式函数插值:计算基本理论
  8. Python写一个服务
  9. appium python api
  10. [小工具] 文本形式转储二进制