简单尝试windows多线程程序
转自:http://blog.csdn.net/xceman1997/article/details/10195563
这两天因工作需要,写了个算法,计算复杂度较高。期望利用多核机器的优势,并行计算,加快运行速度。简单看了看资料,尝试两个小程序。
程序一:函数能并行运行就OK。
- DWORD WINAPI Fun(LPVOID lpParamter)
- {
- cout<<"Fun display"endl;
- i++;
- }
- int main (void)
- {
- cout << "Now starting to verify multi-thread on windows" << endl;
- HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
- CloseHandle(hThread);
- while(1)
- {
- cout<<"main display!"<<endl;
- Sleep(2000);
- }
- cout << "Press anykey to bye-bye" << endl;
- getchar();
- return 0;
- }
程序二:传个参数进到并发函数中,如下:
- DWORD WINAPI Fun(LPVOID lpParamter)
- {
- int iCount = *((int*)lpParamter);
- int i = 0;
- while(i < iCount)
- {
- cout<<"Fun display in the "<< i << " times" <<endl;
- i++;
- // Sleep(1000);
- }
- return iCount;
- }
- int main (void)
- {
- cout << "Now starting to verify multi-thread on windows" << endl;
- int i = 1000;
- HANDLE hThread = CreateThread(NULL, 0, Fun, &i, 0, NULL);
- CloseHandle(hThread);
- while(1)
- {
- cout<<"main display!"<<endl;
- Sleep(2000);
- }
- getchar();
- return 0;
- }
程序三:在写上两个程序的时候,听说OpenMP神器,尝试一下
- int main (void)
- {
- cout << "Now starting to verify multi-thread on windows" << endl;
- int iArray [100];
- for (int i=0; i<100; i++)
- iArray[i] = i;
- #pragma omp parallel for num_threads(2)
- for (int i=0; i<100; i++)
- cout << iArray[i] << endl;
- getchar();
- return 0;
- }
运行的时候,可以看到:1. 双核都在计算;2. 数组实际上是乱序输出(多个线程并发的结果)。
最后我工作中采用的是OpenMP。
简单尝试windows多线程程序相关推荐
- [视频]用SQL Server Compact创建简单的Windows应用程序
今天下午录制了一段 SQL Server Compact 应用程序开发的入门视频,帮助园子里的朋友打开 SQL Server Compact 开发的大门. 技术等级:100 准备环境:Visual S ...
- Windows应用程序简介
我准备从头开始好好学学MFC原理及应用,先从Win API开始学起,不仅要会用,知其然更要知其所以然,这样才能走的更远. 先讲一下Windows应用程序的消息机制,Windows 程序的进行是依靠外部 ...
- 桌面应用程序员简单尝试Rich JavaScript Application
虽然10年前搞过一段时间的Web应用开发,且为所在企业设计了一个基于ASP.NET WebForms(在.NET 1.1的基础上)的Web应用开发框架.但是,后来一直做的都是桌面类的应用,比如Smar ...
- (C#)安全、简单的Windows Forms多线程编程 (一)
(C#)安全.简单的Windows Forms多线程编程 (一) Chris Sells June 28, 2002 翻译:袁晓辉 www.farproc.com farproc#AT#gmail# ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
最近有对一个Windows应用程序少许维护和修改.修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下. Visual Studio版本:Visual St ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...
- winpython使用教程-使用Python开发windows桌面程序【超简单】
一.开发前期准备 1. boa-constructor-0.6.1.bin.setup.exe #一个wxWidges的集成开发环境,简单如Delphi,可以直接拖拽控件,并且和其他集成环境不一样, ...
- 一次简单的Windows和Linux多线程效率测试
一次简单的Windows和Linux多线程效率测试 配置 执行时间 源代码 其他 配置 参数 Windows Linux IDE msvc2015 g++ (GCC) 版本 14.0.25420.01 ...
- 基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,要求:(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能
基于列表框的简单选课窗体开发.编写Windows应用程序,设计实现一个简单选课系统,要求: (1)点击"添加"按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加 ...
- Windows多线程(一) 最简单的多线程
本篇系列参考MoreWindows系列秒杀多线程: http://blog.csdn.net/column/details/killthreadseries.html 第一个简单例子:创建一个子线程, ...
最新文章
- 第一个python去掉行号
- Web前端就业薪资是多少?Web前端要学什么?
- CVPR2015深度学习回顾
- 被替换的项目不是替换值长度的倍数_如果要在Excel中计算单元格内指定的字符长度,我推荐这两个公式.........
- 想学C语言?这些你一定要知道
- python中PIL.Image,OpenCV,Numpy图像格式相互转换
- nacos修改端口号
- 计算机数字雨代码,cmd命令数字雨教程
- 通过CN3口直接控制台达伺服电机A2-M(三)
- 怎样获取计算机硬盘号,电脑硬盘序列号读取工具
- No input file specified. Nginx PHP
- Odoo相关资源(持续更新中)
- html 自动 生成 日期,自己生成Select列表日期时间
- Kubernetes 在本来生活网的落地实践
- java中BOM是什么_javaScript中BOM
- linux打补丁要选择目录,Linux下patch打补丁命令实例详解
- 软考高级 真题 2014年上半年 信息系统项目管理师 论文
- 射频电路基础简窥之低噪声放大器
- 【方法】blob类型地址的图片下载
- Latex并排摆放两张表格