C++ 线程操作
2016-04-23 06:29
381 查看
C++ 线程操作
包含的头文件
#include <Windows.h> //CreateThread的头文件 #include <process.h> //_beginthreadex的头文件
单线程
线程的函数DWORD WINAPI ThreadFunc01(LPVOID pM) { while (1) { cout << "子线程的ID为 : " << GetCurrentThreadId() << endl; Sleep(500); } return 0; }
主函数
HANDLE hThread; hThread = CreateThread(NULL, 0, ThreadFunc01, NULL, 0, NULL); WaitForSingleObject( hThread, INFINITE );
多线程
线程的函数和上面的相同主函数
HANDLE hThread[10]; for (int i = 0; i < 10; i++) { h[i] = CreateThread(NULL, 0, ThreadFunc01, NULL, 0, NULL); } WaitForMultipleObjects( 10, h, TRUE, INFINITE );
注:上述的多线程中输出的顺序并不确定。
_beginthreadex
线程的函数unsigned int __stdcall ThreadFunc00(PVOID pM) { static int num = 0; cout << "子线程的ID为 : " << GetCurrentThreadId() << ", num : " << num++ << endl; return 0; }
主函数
HANDLE h[10]; for (int j = 0; j < 10; j++) { h[j] = (HANDLE)_beginthreadex(NULL, 0, ThreadFunc00, NULL, 0, NULL); } WaitForMultipleObjects( 10, h, TRUE, INFINITE );
相关文章推荐
- 使用C/C++扩展Python
- 设计模式 - 观察者模式(Observe pattern)C++实现
- c++中级 STL基础学习(二)
- 【UNREAL ENGINE 游戏开发】开篇之UE4的BLUEPRINT(蓝图)与C++(新童鞋必看)
- 【UNREAL ENGINE 游戏开发】开篇之UE4的BLUEPRINT(蓝图)与C++(新童鞋必看)
- C++进阶 面向对象基础(三)
- c++作业4
- LEX & FLEX 实现C语言词法分析器
- 【C++】JSON文件的读取和生成
- C++作业4
- 【代码】C++实现二叉树基本操作及测试用例
- c++的重载、覆盖和隐藏
- Effective C++: std::move
- c++作业4
- C++第四次上机实验其他作业
- C语言4——文件操作
- C++新手之memset
- union 共用体的使用
- c++类型转换关键字dynamic_cast和static_cast的使用区别
- Dijkstra迪杰斯特拉算法及C++实现