用_beginthreadex创建线程
2014-07-31 22:23
246 查看
//Note:尽量用_beginthreadex而不要用CreatThread //用_beginthreadex和_endthreadex编写多线程程序 #include<iostream> #include<Windows.h> #include<process.h> using namespace std; unsigned num; unsigned __stdcall thread2(void* pArguments){//线程函数 cout<<(char*)pArguments<<endl; cout << "Running thread2" << endl; for (int i = 0; i < 1000; ++i) num++; _endthreadex(0); return 0; } int main(){ cout << "Running main thread" << endl; cout << "Now creat a new thread2" << endl; char str[] = "dave call thread2"; HANDLE hThread; hThread = (HANDLE)_beginthreadex(NULL, 0, thread2, str, 0, NULL);//创建线程 /* uintptr_t _beginthreadex( // NATIVE CODE void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr ); */ WaitForSingleObject(hThread, INFINITE);//等待thread2退出,如果不等待 num在输出前可能还没增加到1000 CloseHandle(hThread); cout << "num has changed "<<num << endl; }
相关文章推荐
- CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别
- 使用_beginthreadex 创建线程并实现多线程同步
- windows核心编程笔记第10篇 (线程创建的过程和基于C/C++运行库的_beginthreadex)
- CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别(1)
- Code::blocks 下用_beginthreadex创建一个简单的线程
- 创建线程的方法【CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别】
- (转)为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?
- 多线程第一篇:使用_beginthreadex创建线程
- windows笔记-创建线程的另一个函数_beginthreadex
- -创建线程的另一个函数_beginthreadex
- CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别(1)
- windows笔记-创建线程的另一个函数_beginthreadex
- 多线程篇(一)——线程的创建方法CreateThread和_beginthreadex
- 为什么创建线程不用 CreateThread,而用 __beginthreadex
- 在类中使用_beginthreadex函数创建线程并访问该类中的数据成员
- 创建线程的另一个函数_beginthreadex
- 为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?
- windows笔记-创建线程的另一个函数_beginthreadex
- 封装windows 线程创建函数_beginthreadex和createthread函数的类
- _beginthreadex创建线程