您的位置:首页 > 职场人生

进程、线程(面试一)

2016-06-08 20:48 344 查看
/*

面试(一)

开发环境: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]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: