创建线程

 1 //首先介绍widows创建线程的两个函数  2 //创建线程函数
 3 
 4 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,  5  SIZE_T dwStackSize,  6  LPTHREAD_START_ROUTINE lpStartAddress,  7  LPVOID lpParameter,  8  DWORD dwCreationFlags,  9  LPDWORD lpThreadId ) ; 10 
11 //如果是写的C++运行库代码,应该用下面这个函数。
12 具体原因可以参照下面博客上的解释 13 http://www.cnblogs.com/wParma/archive/2009/10/30/1593002.html
14 
15 _beginthreadex(void *security ,            //此函数专用于C/C++运行库线程的创建
16     unsigned static_size ,             //自己在MFC中试了一下,会阻塞主线
17     unsigned (*start_address)(void*), 18     void *arglist, 19  unsigned initflg, 20     unsigned *thrdaddr) ; 21 //下面我们看一个例子
22 #include "windows.h"
23 #include <process.h>      /* _beginthread, _endthread */
24 #include "iostream"
25 using namespace std; 26 //定义线程函数
27 DWORD WINAPI ThreadFunC(PVOID pvParam) ; 28 int main() 29 { 30      /*创建线程函数,调用这个函数便会产生一个线程, 31  即使入口函数和参数一样,但是也属于不同线程。*/
32 
33     HANDLE hTread = CreateThread(NULL,0,ThreadFunC,0,NULL,0) ; 34     //_beginthreadex(NULL,0,(unsigned int (__stdcall *)(void *))ThreadFunC,0,0,NULL); 
35     CloseHandle(hTread);  //关闭线程句柄,使其使用数递减。
36  getchar() ; 37     return 0; 38 } 39 DWORD WINAPI ThreadFunC(PVOID pvParam) 40 { 41     int i = 0 ; 42     while (1) 43  { 44         i++; 45         Sleep(1000); 46         cout<<"我是线程函数,我运行了"<<i<<"次了"<<"\n"; 47  } 48     return 0 ; 49 } 50  

 

你可能感兴趣的:(线程)