//保存线程的ID。
DWORD dwThreadID = 0
HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID)//创建下载线程
//全局函数
static DWORD WINAPI DownloadThread(void *pArg)
{
//这里写上创建线程做什么的函数
return 0
}
////////////等待线程结束
//等待线程结束。
DWORD dRet
MSG msg
while (1)
{
dRet=::MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT)
if (dRet == WAIT_OBJECT_0+1)
{
while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg)
DispatchMessage(&msg)
}
}
else
{
break
}
}
//删除的线程资源。
CloseHandle(hThread)
mfc上位机开启多线程能并行执行吗?几乎所有的程序员都知道,现代 *** 作系统进行资源分配的最小单元是进程,而 *** 作系统进行运算调度的最小单元是线程,其实,在Linux中线程也可以看作是一种轻量级的进程,那么线程是包含于进程之中的,是进程中实际的运作单位;同一进程中的多个线程共用同一块内存空间,而不同的线程又拥有独立的栈内存用以存放线程本地数据;
大家都知道,现在的计算机动辄就是多处理器核心的,而每一个线程同一时间只能运行在一个处理器上,那么如果程序采用单线程进行开发,那么就不能充分利用多核处理器带来的优势;所以为了充分利用多核处理器的资源来提高程序的执行性能,多线程编程变得越来越重要,比如对于计算密集型任务,使用一个线程可能需要100秒,但是,如果使用十个线程共同完成,那么需要的时间可能只有10秒左右;如果你是使用Java开发程序的,那么你很幸运,因为Java是内置多线程编程模型的;但是,想要使用好多线程这把利刃,还需要掌握好多线程编程的基础知识,从而做到得心应手地使用多线程进行高性能程序的开发!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)