首页 > 代码库 > 创建多线程
创建多线程
//首先介绍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 ;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。