/*
面试(一)
开发环境:Visual Studio 2008
开发语言:C语言
要 求:阅读以下程序,口述其含义,并写出输出结果。
时 间:10-15分钟
*/
#include <windows.h>
#include <stdio.h>
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
LPWORD pData;
DWORD i=0;
pData=(LPWORD)lpParam;
for(i=0;i<10;i++)
{
Sleep(100);
printf("TID= %u,\t Parameters =%u\t i=%u\n",GetCurrentThread(),*pData,i);
}
ExitThread(i);
return 0;
}
void main()
{
DWORD dwData;
DWORD dwThreadId[2];
HANDLE hThread[2];
hThread[0]=CreateThread(NULL,0,ThreadProc,&dwData,CREATE_SUSPENDED,&dwThreadId[0]);
if(hThread[0]==NULL)
{
ExitProcess(0);
}
dwData=2;
hThread[1]=CreateThread(NULL,0,ThreadProc,&dwData,0,&dwThreadId[1]);
if(hThread[1]==NULL)
{
ExitProcess(1);
}
Sleep(200);
ResumeThread(hThread[0]);
SuspendThread(hThread[1]);
Sleep(300);
TerminateThread(hThread[0],0);
ResumeThread(hThread[1]);
WaitForMultipleObjects(2,hThread,TRUE,INFINITE);
CloseHandle(hThread[0]);
CloseHandle(hThread[1]);
}