创建线程

 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<<"次了"<<"
";
47     }
48     return 0 ;
49 }
50  
原文地址:https://www.cnblogs.com/yfyzy/p/3916154.html