c++线程间通信_c语言两个线程如何通信

c++线程间通信_c语言两个线程如何通信c++线程间通过PostThreadMessage和GetMessage函数进行通信,下面用代码演示两个线程间的通信://ConsoleApplication1.cpp:定义控制台应用程序的入口点。//#include<stdio.h>#include<windows.h>usingnamespacestd;DWORDWINAPIThreadFun1(LPVOIDparam);DWORDWINAPIThreadFun2(LPVOIDpara

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

c++线程间通过PostThreadMessage和GetMessage函数进行通信,下面用代码演示两个线程间的通信:

// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
#include<windows.h>
using namespace std;

DWORD WINAPI ThreadFun1(LPVOID param);
DWORD WINAPI ThreadFun2(LPVOID param);

#define MY_MSG  WM_USER+1 //定义用户消息

int main()
{

    DWORD threadID1;
    HANDLE hThread1 = CreateThread(NULL,0, ThreadFun1,NULL,0, &threadID1);
    HANDLE hThread2=  CreateThread(NULL,0, ThreadFun2,(PVOID)threadID1,0, NULL);
    HANDLE hThread[] = { hThread1 ,hThread2 };
    WaitForMultipleObjects(2, hThread, TRUE, INFINITE);
    
    return 0;
}
DWORD WINAPI ThreadFun1(LPVOID param)
{

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {

        switch (msg.message)
        {

        case MY_MSG:
            printf(“收到消息%d\n”, msg.wParam);
            break;
        }
    }
    printf(“收到WM_QUIT\n”);
    return 0;
}
DWORD WINAPI ThreadFun2(LPVOID param)
{

    DWORD threadId = (DWORD)param;
    int N = 1;
    while (true)
    {

        if (N <= 10) {

            PostThreadMessage(threadId, MY_MSG, (WPARAM)N++, NULL); 
        }
        else {

            PostThreadMessage(threadId, WM_QUIT, NULL, NULL);
            break;
        }
            
        Sleep(1000);
    }
    return 0;
}

c++线程间通信_c语言两个线程如何通信

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185240.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 倘若对一个人好是一种错误_gta5出现了一个错误

    倘若对一个人好是一种错误_gta5出现了一个错误在一个项目中,我把167行的写成了,竟然报了如下错误:Parseerror:syntaxerror,unexpected$endinE:\wamp\www\tmlog\index.phponline186感觉好恶心,以后注意点。

    2022年10月19日
    0
  • 怎么生成pkl文件_python unzip

    怎么生成pkl文件_python unzip我在训练UCF101数据集的时候,遇到一个大高玩使用pkl文件,一开始使用它们的数据炮的好好的。后来开始跑自己的数据时,就出问题了。不知道这个pkl到底是个什么东西。原始的那个大高玩的ucf101的标签数据读取出来是这个样的:[‘PommelHorse’,’Surfing’,’HammerThrow’,’PlayingViolin’,’WallPushups’,’PullUps’,’PizzaTossing’,’SalsaSpin’,’Shotput’,’CricketShot’,

    2022年9月4日
    2
  • java.util.Map——Map集合的常用方法「建议收藏」

    java.util.Map——Map集合的常用方法「建议收藏」Java技术交流群:817997079,欢迎“有志之士”的加入。开发中最常用的就是List集合和Map集合,Map集合是基于java核心类——java.util中的;Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的value;下面介绍的是Map集合的一些经常用到的方法以及代码示例。1.map.size();方法作用:获取map集合类的大小(m…

    2022年5月7日
    42
  • vss配置beyond compare「建议收藏」

    UsingBeyondComparewithVersionControlSystems
    BeyondComparecanbeconfiguredastheexternaldifferenceutilityinmanypopularVCSapplications. Thefollowingareconfigurationinstructionsforspecificproducts. Letusknowifyouhave

    2022年4月13日
    72
  • 三门问题的计算机模拟,三门问题是指_数学三门问题

    三门问题的计算机模拟,三门问题是指_数学三门问题三门问题(MontyHallproblem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let’sMakeaDeal。问题名字来自该节目的主持人蒙提·霍尔(MontyHall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两…

    2022年10月22日
    0
  • 电脑虚拟ip地址怎么弄_虚拟服务器内部端口和外部端口

    电脑虚拟ip地址怎么弄_虚拟服务器内部端口和外部端口写在前面最近,有位小伙伴为了实现Nginx的高可用,在自己的服务器上搭建了一套Nginx集群,Nginx节点的服务器总共有3台。那么问题来了:如何对外只使用一个IP地址,通过某种策略来访问三个服务器节点上的Nginx?答案就是:可以使用虚拟IP来实现!那么,如何在服务器上添加虚拟IP?今天,我们就一起实操在服务器上添加虚拟IP。实战内容这里我们创建两个虚拟机环境,IP地址分别为192.168.20…

    2022年10月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号