• 多线程:主线程在运行过程中,可以创建新的线程,这些线程可以共享进程的资源,如全局变量,句柄等;
  • 线程函数定义:DWORD WINAPI ThreadProcess(LPVOID lpParam);
    • `WINAPI 宏名,在windef.h有声明 #define WINAPI __stdcall;__stdcall为新标准C++/C函数调用方法,采用自动清栈;
    • 凡是由系统调用的函数必须定义为__stdcall类型,需要显示说明,否则为_cdecl类型。
  • 线程创建函数:
  • HANDLE CreateThread(
    • LPSECURITY_ATTRIBUTES lpThreadAttributes,
    • DWORD dwStackSize,
    • LPTHREAD_START_ROUTINE lpStartAddress,
    • LPVOID lpParameter,
    • DWORD dwCreationFlage,指定为零,线程创建后立即启动;为CREATE_SUSPENDED时,ResumeThread函数启动。
    • DWORD* lpThreadId);
  • #include<windows.h>
    #include<iostream>

  • using namespace std;

    DWORD WINAPI ThreadProcess(LPVOID lpParam)
    {
        int i = 0;
        for (i; i < 100; i++)
            cout << "测试" << i << endl;
        return 0;
    }
    int main()
    {
        DWORD ThreadId;
        HANDLE hThread= ::CreateThread
        (
            NULL,
            NULL,
            ThreadProcess,
            NULL,
            0,
            &ThreadId
        );

  • Sleep(20);
        cout << "结果id=" << ThreadId<< endl;

    ::WaitForSingleObject(hThread, INFINITE);
        ::CloseHandle(hThread);
        return 0;
    }

  • 函数:WaitForSingleObject(hThread, INFINITE);
    • 等待指定对象变为授信状态;
    • INFINITE:指定函数等待的时间;

Win32程序执行单元-多线程相关推荐

  1. python程序默认执行与多线程

    一.程序执行流程和进程线程简述 1程序执行流程 有类似脚本程序或编程经验的同学都知道,程序默认是自上而下,从左到右的按顺序执行,也叫串行执行;而多线程类似于并行执行,即A模块(函数)执行时B也执行不需 ...

  2. java商城项目中多线程执行_java多线程中执行多个程序的实例分析

    我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行 ...

  3. java 多线程 变慢_java多线程并发程序执行慢有什么原因?该怎么解决?

    我们在执行java多线程并发程序时有时候会碰到执行特别慢的场景,小伙伴们知道是什么原因导致的吗?它要怎么解决呢?下面小编就为你讲讲. 前提:在某地需要开发一个应用系统,此系统主要功能是能够让一些中小型 ...

  4. 在.NET客户端程序中使用多线程

    在.NET客户端程序中使用多线程通常认为在编写程序中用到多线程是一个高级的编程任务,容易发生错误.在本月的栏目中,我将在一个Windows窗体应用程序中使用多线程,它具有实际的意义,同时尽量使事情简单 ...

  5. Java 程序中的多线程

    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...

  6. java线程的创建与执行_Java多线程的创建和运行

    1.多线程的好处 多线程是一个很有用的东西,它使的系统可以同时运行多个任务,提高程序的执行效率.大家平时可能没有注意到,其实我们电脑能同时执行多个程序的基本原理就是多线程. 每一个程序都是一个进程,而 ...

  7. C++ Win32程序编写入门

    翻译:原文地址 一.关于Win32++ ​        本文档描述了Win32++9.1版的功能.若要下载Win32++的程序清单,可以点击这里. Win32++是一个用于构建windows应用程序 ...

  8. BUAA_OO 第二单元多线程电梯问题作业总结

    OO第二单元总结 本单元主要通过电梯系列习题培养同学们的多线程编程能力,难度逐步递增.第一次最为简单,第二次.第三次则相对困难.然而我个人在三次作业中第一次作业中使用了相对线程安全的阻塞队列Array ...

  9. 学习Struts--Chap02:Struts2框架各个功能模块和程序执行流程的介绍

    1.Struts2的系统架构: 2.架构中不同Key的作用介绍: servlet Filters:过滤器链,client的全部请求都要经过Filter链的处理. Struts Core:Struts2 ...

最新文章

  1. 【牛腩新闻发布系统】开发前的准备01
  2. Echo团队Alpha冲刺随笔 - 第九天
  3. 两篇关于MCU的嵌入式应用的文章【ZZ】
  4. 怎样将计算机添加桌面快捷方式,Win10系统下如何将程序快捷方式添加到桌面上?【图文教程】...
  5. 移动端相关 em rem px 区别和关联
  6. archlinux php imagemagick,如何用ImageMagick将SVG转换为PNG?
  7. VMware NSX for vSphere 6.3.0 发行说明
  8. WPF 凭证分录控件
  9. UMDF驱动程序快速上手
  10. Spring框架帮助文档目录
  11. java中 break语句_Java break语句
  12. MySQL 管理表记录
  13. Flash CS4学习笔记1
  14. python请输入一个三位数输出该三位数的逆序数_键盘输入一个三位数,输出逆序后的数...
  15. OPC 救援:OPC Rescue Crack
  16. VI设计创意的方法与技巧
  17. win10系统联想电脑亮度自动调节怎么办?
  18. mysql password_expired
  19. 原来js让任务栏闪烁这么简单
  20. 【办公软件有哪些】万彩办公大师教程丨PDF页面编辑

热门文章

  1. LeetCode 554. 砖墙(map计数)
  2. LeetCode 1352. 最后 K 个数的乘积
  3. 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)
  4. LeetCode 979. 在二叉树中分配硬币(DFS)
  5. LeetCode 384. 打乱数组(rand)
  6. 计算尖峰电流的目的_入门必看!负荷计算的目的、方法以及原则详解
  7. Python多进程及多参数的处理方法
  8. Python语法糖——遍历列表时删除元素
  9. python中break与continue使用
  10. python的魔法_python魔法方法大全