windows 线程同步学习测试-1
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了windows 线程同步学习测试-1,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1831字,纯文字阅读大概需要3分钟。
内容图文
环境win7旗舰64位系统,vs2013,AMD fx?4100 Auad-core processor ,8G内存,
看《windows核心编程》线程同步一章,看到有说g_x++会不同步的问题,试着写些代码加深印象。发现+1太快了,看不出效果,于是for循环了1亿次。代码如下:
#include "stdafx.h"using std::cout; using std::endl; using std::cin; unsigned __stdcall ThreadFunRun(void * paData)//vs默认是__cdecl 调用{ int *iData = (int*)paData; for (int index = 0; index < 100000000; ++index) { (*iData)++; } //cout <<"线程函数中"<< *iData << endl;return0; } using std::vector; vector<HANDLE> createThread(int &ivalue) { vector<HANDLE> vecH; constint iThrCount = 2; for (int index = 0; index < iThrCount; ++index) { HANDLE hpt1 = (HANDLE)_beginthreadex( NULL,//SECURITY_ATTRIBUTES0,//cbStackSize ThreadFunRun, &ivalue, 0, NULL ); vecH.push_back(hpt1); } return vecH; } bool waitForRun(vector<HANDLE> & hs) { for (int index = 0; index < hs.size(); ++index) { DWORD dwaitRes = WaitForSingleObject(hs[index], INFINITE); if (dwaitRes !=WAIT_FAILED) { CloseHandle(hs[index]); } else { cout << "等待时出错,出错ID:" << GetLastError() << endl; for (; index < hs.size();++index) { CloseHandle(hs[index]); } returnfalse; } } returntrue; } int _tmain(int argc, _TCHAR* argv[]) { constint icount = 50; for (int index = 0; index < icount; ++index) { int ivCalc = 0; vector<HANDLE> hsGet = createThread(ivCalc); // Sleep(60); // cout << ivCalc << endl;if (waitForRun(hsGet)) cout << ivCalc << endl; else cout<<"第 "<<index << " 次等待线程结束出错" << endl; } return0; }
运行效果部分复制如下:
103142316
103378991
114315655
113482883
112601936
103115533
104226349
116483624
118944471
117040062
117731078
104095516
113767825
108898288
114825927
102189580
98102943
114165950
113351409
114693549
103554014
103167647
113206459
103698422
结果甚至有小于1亿的。
原文:http://www.cnblogs.com/xiarl/p/4541783.html
内容总结
以上是互联网集市为您收集整理的windows 线程同步学习测试-1全部内容,希望文章能够帮你解决windows 线程同步学习测试-1所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。