码迷,mamicode.com
首页 > 编程语言 > 详细

win32多线程 (一) 线程创建与结束等待

时间:2014-07-17 21:29:18      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:os   io   for   re   c   ar   


#include "stdafx.h"
#include <Windows.h>
#include <iostream>

using namespace std;
 
DWORD WINAPI ThreadFuncFirst(LPVOID param)
{
 int iCount = 50;
 while(iCount--){
  cout<<"\nThreadFuncFirst:"<<iCount;
 }
 return 0;
}

DWORD WINAPI ThreadFuncSecond(LPVOID param)
{
 int iCount = 50;
 while(iCount--){
  cout<<"\nThreadFuncSecond:"<<iCount;
 }
 return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
 DWORD dwThreadID = 0;
 HANDLE handleFirst = CreateThread(NULL, 0, ThreadFuncFirst, 0, 0, &dwThreadID);
 if (!handleFirst)
 {
  cout<<"create thread 1 error:"<<endl;
 }
 HANDLE handleSecond = CreateThread(NULL, 0, ThreadFuncSecond, 0, 0, &dwThreadID);
 if (!handleSecond)
 {
   cout<<"create thread 2 error:"<<endl;
 }

//HANDLE arrayHandle[] = {handleFirst, handleSecond};
 //WaitForMultipleObjects(2, arrayHandle, TRUE, INFINITE);
 WaitForSingleObject(handleFirst, INFINITE);//等待线程返回,用sleep()就太山寨了
 WaitForSingleObject(handleSecond, INFINITE);
 CloseHandle(handleFirst);//句柄默认值2 这里减1,线程函数执行完后释放资源。
 CloseHandle(handleSecond);
 return 0;
}

 

另外,由于这里的两个线程函数在输出时没有加同步处理,所以输出时候有线程切换,你看到屏幕上的输出可能比较杂乱。

win32多线程 (一) 线程创建与结束等待,布布扣,bubuko.com

win32多线程 (一) 线程创建与结束等待

标签:os   io   for   re   c   ar   

原文地址:http://www.cnblogs.com/zhidao-chen/p/3851526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!