首页 > 代码库 > 创建多线程

创建多线程

//首先介绍widows创建线程的两个函数
//创建线程函数HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ) ;
//如果是写的C++运行库代码,应该用下面这个函数。
具体原因可以参照下面博客上的解释
http://www.cnblogs.com/wParma/archive/2009/10/30/1593002.html
_beginthreadex(
void *security , //此函数专用于C/C++运行库线程的创建 unsigned static_size , //自己在MFC中试了一下,会阻塞主线 unsigned (*start_address)(void*), void *arglist, unsigned initflg, unsigned *thrdaddr) ;
//下面我们看一个例子
#include "windows.h"#include <process.h>      /* _beginthread, _endthread */#include "iostream"using namespace std;
//定义线程函数DWORD WINAPI ThreadFunC(PVOID pvParam) ;
int main(){     /*创建线程函数,调用这个函数便会产生一个线程,       即使入口函数和参数一样,但是也属于不同线程。*/    HANDLE hTread = CreateThread(NULL,0,ThreadFunC,0,NULL,0) ;     //_beginthreadex(NULL,0,(unsigned int (__stdcall *)(void *))ThreadFunC,0,0,NULL);        CloseHandle(hTread);  //关闭线程句柄,使其使用数递减。    getchar() ;    return 0;}
DWORD  WINAPI ThreadFunC(PVOID pvParam){    int i = 0 ;    while (1)    {        i++;        Sleep(1000);        cout<<"我是线程函数,我运行了"<<i<<"次了"<<"\n";    }    return 0 ;}