进程、线程(面试一)

来源:互联网 发布:php ios aes加密解密 编辑:程序博客网 时间:2024/04/30 15:39

/*
面试(一)
开发环境: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]);}
0 0
原创粉丝点击