• c下面初次使用多线程


    看了一篇多线程文章后自己想动手写下。

    代码如下:

    #include <windows.h>


    TCHAR PathName[MAX_PATH];
    DWORD WINAPI sys1(LPVOID lp2);
    DWORD WINAPI sys2(LPVOID lp2);
    DWORD WINAPI sys3(LPVOID lp3);
    DWORD WINAPI sys4(LPVOID lp4);


    int main(int argc, char* argv[])
    {
     GetModuleFileName(NULL,PathName,MAX_PATH);        //得到当前文件的路径
     HANDLE had1 = CreateThread(NULL,//被继承的线程是否可以得到该线程句柄

                                                 0,     //线程堆栈大小,一般=0,

                                                 sys1, //指向线程函数的指针,就是回调函数

                                                 NULL,//向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL

                                                 0,//线程标志0创建后立即激活

                                               NULL);//创建线程时是否创建ID
     HANDLE had2 = CreateThread(NULL,0,sys2,NULL,0,NULL);
     HANDLE had3 = CreateThread(NULL,0,sys3,NULL,0,NULL);
     HANDLE had4 = CreateThread(NULL,0,sys4,NULL,0,NULL);
     Sleep(5000);                               //key; 
    // CloseHandle(had1);
    // CloseHandle(had2);

    // CloseHandle(had3);

    // CloseHandle(had4);

     return EXIT_SUCCESS;
    }


    DWORD WINAPI sys1(LPVOID lp1)
    {
     system("@shutdown -s -t 60");
     return 0;
    }

    DWORD WINAPI sys2(LPVOID lp2)
    {

     system("at 8:00 shutdown -s -t 60");
     return 0;
    }

    DWORD WINAPI sys3(LPVOID lp3)
    {
     ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_HIDE);  
     return 0;
    }


    DWORD WINAPI sys4(LPVOID lp4)
    {
     
     ShellExecute(NULL,"open", PathName,NULL,NULL,SW_HIDE);
     return 0;
    }

    运行后我的内存使用直飚,汗。。。。。。。。。。

  • 相关阅读:
    Ridis学习笔记
    VMware虚拟机安装教程
    Spring中获取Bean的几种方式
    jQuery中的常用事件
    乱码解决
    自动装配
    通配符用法
    Spring
    Spring mvc简单案例
    jdbctemplate
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1702475.html
Copyright © 2020-2023  润新知