zoukankan      html  css  js  c++  java
  • 线程控制

    三个函数的使用

    1,WaitForSingleObject

    #include <Windows.h>
    
    DWORD WINAPI MyThread(LPVOID lpParameter)
    {
        //ziji de code
    }
    
    int main()
    {
        HANDLE hThread;
        hThread = CreateThread(NULL,0,MyThread,NULL,0,NULL);
        CloseHandle(hThread);
        WaitForSingleObject(hThread,INFINITE);//等待hThread线程执行完毕再往下走
        printf("hThread线程执行完毕。。。");
        return 0;
    }

    2,WaitForMultipleObjects

    DWORD WaitForMultipleObjects(
      DWORD        nCount,
      const HANDLE *lpHandles,
      BOOL         bWaitAll,//TRUE-所有线程状态发生改变时,FALSE-任何一个线程状态发生改变时
      DWORD        dwMilliseconds
    );

    3,GetExitCodeThread

    获取线程返回值,根据返回值,判断如何执行后续代码
    #include <Windows.h>
    
    DWORD WINAPI MyThread1(LPVOID lpParameter)
    {
        DWORD oneCode;
        //ziji de code
        return oneCode;
    }
    DWORD WINAPI MyThread2(LPVOID lpParameter)
    {    DWORD oneCode;
        //ziji de code
        return oneCode;
    }
    
    int main()
    {
        HANDLE hThread1;
        HANDLE hThread2;
        DWORD dwThreadResult1;
        DWORD dwThreadResult2;
        //创建多个线程,可以使用同一份线程代码,创建的是不同的堆栈,下面都使用了MyThread线程函数的代码
        hThread1 = CreateThread(NULL,0,MyThread1,NULL,0,NULL);
        hThread2 = CreateThread(NULL,0,MyThread2,NULL,0,NULL);
        GetExitCodeThread(hThread1,&dwThreadResult1);//获取线程返回值,根据返回值,执行后续代码 if ...if ...
        GetExitCodeThread(hThread2,&dwThreadResult2);
        CloseHandle(hThread1);
        CloseHandle(hThread2);
        return 0;
    }
  • 相关阅读:
    hdu 4496 D-City 并查集
    hdu 4493 Tutor 水题
    codeforces 377A. Puzzles 水题
    hdu 1257 小希的迷宫 并查集
    图论500题
    cdoj 93 King's Sanctuary 傻逼几何题
    cdoj 题目简单分类
    cdoj 80 Cube 水题
    cdoj 71 I am Lord Voldemort 水题
    cdoj 65 CD Making 水题
  • 原文地址:https://www.cnblogs.com/a-s-m/p/12349632.html
Copyright © 2011-2022 走看看