Win32程序执行单元-多线程

  • 多线程:主线程在运行过程中,可以创建新的线程,这些线程可以共享进程的资源,如全局变量,句柄等;
  • 线程函数定义: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:指定函数等待的时间;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP中foreach遍历循环的使用(两种用法)

foreach在循环遍历数组时是很便利的&#xff0c;PHP提供了两种方法&#xff1a;1. 输出不显下标 2.输出显示下标 (注意&#xff1a; foreach不支持消除错误信息) 题目如图 输出不显下标&#xff1a; foreach($ students as $key) { echo " $key"."< br/>…

【博客园2018总结帖】21天,在Github上获取 6300 star

大家好&#xff0c;我是程序员小吴。12月初我在GitHub上上传了一个仓库&#xff0c;到现在为止获取了 6300 star&#xff0c;下面和大家聊聊关于项目启动的初衷、面临的一些困难和未来的计划。 「LeetcodeAnimation」的萌芽&#xff1f; 在刷Leetcode的过程中&#xff0c;遇到很…

多线程-线程同步

CreateThread函数与_beginthreadex 函数的联合使用&#xff1a; 为了多线程同步的需要&#xff0c;使每个线程必须具有唯一的状态&#xff0c;CreateThread还不能灵活使用&#xff0c;需要使用C/C运行期库&#xff1b;CreateThread函数参数与_beginthreadex函数对应的&#xff…

最强原创综述!当强化学习邂逅组合优化

『运筹OR帷幄』转载来源&#xff1a;运筹OR帷幄作者&#xff1a;黄含驰未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云脑研究计划&#xff0c;构建互联网&…

7-2 银行排队问题之单窗口“夹塞”版 (30 分)

PTA 排队“夹塞”是引起大家强烈不满的行为&#xff0c;但是这种现象时常存在。在银行的单窗口排队问题中&#xff0c;假设银行只有1个窗口提供服务&#xff0c;所有顾客按到达时间排成一条长龙。当窗口空闲时&#xff0c;下一位顾客即去该窗口处理事务。此时如果已知第i位顾客…

数学认知中的具身进路及其哲学观初探

来源&#xff1a;《科学技术哲学研究》2020年第6期作者&#xff1a;王东&#xff08;北京工商大学马克思主义学院&#xff09;吴彤&#xff08;清华大学人文学院&#xff09;国家社会科学基金重大课题“科学实践哲学与地方性知识研究”(13&ZD068)从数学思想史以及数学哲学的…

Flink编程入门(二)

Flink 有三种部署模式&#xff0c;分别是 Local、Standalone Cluster 和 Yarn Cluster。 1.1. Local模式 对于 Local 模式来说&#xff0c;JobManager 和 TaskManager 会公用一个 JVM 来完成 Workload。如果要验证一个简单的应用&#xff0c;Local 模式是最方便的。实际应用中大…

7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)

7-4 银行排队问题之单队列多窗口加VIP服务 (30 分) 说实话这道题挺恶心 有意思的&#xff0c;大模拟&#xff0c;主要的思路就是模拟时间轴。 题目描述 假设银行有K个窗口提供服务&#xff0c;窗口前设一条黄线&#xff0c;所有顾客按到达时间在黄线后排成一条长龙。当有窗口…

线程同步-互锁函数

互锁函数&#xff1a; LONG InterlockedIncrement&#xff08;LONG volatile* Addend&#xff09;&#xff1a;递增指定32位变量&#xff0c;增量位1&#xff0c;可以阻止其他线程同时使用此变量&#xff1b;LONG InterlockedDecrement&#xff08;LONG volatile* Addend&#…

李德毅院士:探索新一代人工智能产业发展

来源&#xff1a;主线科技2021年5月14日&#xff0c;主线科技联合中国人工智能学会智驾专委会正式发起成立“新一代人工智能物流创新中心”&#xff0c;并携手福佑卡车开启中国首个干线物流自动驾驶商业项目。在此次活动上&#xff0c;中国工程院院士、CAAI名誉理事长、主线科技…

1.修理牧场

农夫要修理牧场的一段栅栏&#xff0c;他测量了栅栏&#xff0c;发现需要N块木头&#xff0c;每块木头长度为整数L​i个长度单位&#xff0c;于是他购买了一条很长的、能锯成N块的木头&#xff0c;即该木头的长度是Li​​ 的总和。 但是农夫自己没有锯子&#xff0c;请人锯木的…

线程同步-事件内核对象

事件内核对象&#xff1a;两种状态&#xff0c;受信状态与未受信状态&#xff0c;3个成员&#xff1b; nUsageCount&#xff08;使用计数&#xff09;&#xff1b;bManualReset&#xff08;是否人工重置&#xff09;&#xff1b;bSignagled&#xff08;是否受信&#xff09;。基…

yii2.0AR两表联查

首先&#xff0c;建两个关联表。 表一 -- Table structure for article -- ---------------------------- DROP TABLE IF EXISTS article; CREATE TABLE article ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增id, new text, t_id int(11) DEFAULT NULL COMMENT 关联id, P…

AI产业链全景图!【物联网智商精选】

来源&#xff1a;ittbankAI产业链全景图最后给大家介绍一款英伟达高性能AI边缘计算超级计算机模块&#xff1a;NVIDIA JETSON TX2Jetson TX2是NIVDIA瞄准人工智能在Jetson TK1和TX1推出后的升级TX2的GPU和CPU都进行了升级&#xff0c;内存增加到了8GB、存储增加到了32GB&#…

7-2 哈夫曼编码 (30 分)

2019.12.15更正Best函数样本数据初始化问题并且对代码添加了注释; 2020.11.17更正&#xff1a;题目说明&#xff1b; 原贴发于2019.11.22 注意&#xff1a;本题不是哈夫曼编码裸题&#xff0c;学习哈夫曼编码的同学不要过度依赖本题算法&#xff0c;只有参考价值&#xff1b; 给…

通用AI咋发展?向大脑学习是条路子

来源&#xff1a;中国科学报作者&#xff1a;郑金武编辑&#xff1a;赵路排版&#xff1a;志海作为代表自然界拥有最通用智能的生物大脑&#xff0c;可以借助低功耗和少量后天数据&#xff0c;实现在复杂环境下执行复杂任务的智能行为。因此&#xff0c;探索生物大脑智能认知的…

Oracle:select into 查询没有记录的解决办法

在数据库编程中&#xff0c;select into 语句可以将数据库的某些值赋值给程序的变量&#xff0c;使用起来非常方便。但很多时候也会遇到查询出来没有记录的情况&#xff0c;这时程序会出错。 可以使用 exception when NO_DATA_FOUND then 但是如merge into using 查不到时可以使…

MFC随机博弈黑白棋

随机博弈黑白棋 随机博弈黑白棋 TxyITxs | 随机博弈黑白棋 | 2019.04.21 摘要 通过随机落子&#xff0c;实现黑白棋的博弈。无任何落子规则&#xff0c;棋子死活与围棋中棋子的死活一致&#xff0c;即存在至少一口气。动态模拟双方博弈&#xff0c;但棋盘无落子位置时停止。…

7-3 喊山 (30 分)

搞了好几天心态的一道题&#xff0c;还是菜&#xff0c;原因就是想复杂了&#xff0c;第一次遇到了内存超限的问题&#xff0c;把邻接矩阵由二维数组换成了vector才过的。 7-3 喊山 (30 分) 喊山&#xff0c;是人双手围在嘴边成喇叭状&#xff0c;对着远方高山发出“喂—喂喂…

章鱼有9个大脑能编辑基因,智商高到无法理解,为何没发展出文明

来源&#xff1a;科学杂志按照进化论的观点&#xff0c;生物演化出脊椎&#xff0c;是发展出更高智商的敲门砖。因为脊椎让生物体内的神经高度集中&#xff0c;反应速度明显加快&#xff0c;并且还有利于大脑向更加高级的结构演化。事实也确实如此&#xff0c;如果盘点世界上最…