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语言两个线程如何通信

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 文件包含漏洞—allow_url_fopen和allow_url_include详解

    文件包含漏洞—allow_url_fopen和allow_url_include详解文件包含漏洞_allow_url_fopen和allow_url_include详解提要:在文件包含漏洞中,PHP脚本环境中php.ini文件中通常会涉及到这两个参数,两个参数的开启或关闭影响文件包含漏洞的利用。1,参数简介:allow_url_fopen参数(只影响RFI,不影响LFI)简介:是否允许将URL(HTTP,HTTPS等)作为文件打开处理allow_url_include参数(只影响RFI,不影响LFI)简介:是否允许includeI()和require()函数包含URL(HTTP

  • 对猴子摘香蕉问题给出产生式系统描述_猴子接香蕉的编程

    对猴子摘香蕉问题给出产生式系统描述_猴子接香蕉的编程一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉2.1猴子摘香蕉问题PEAS性能环境执行器感知器猴子站在箱香蕉MoveSite子上摘到香箱子ClimbHold蕉房间(a,b,c)PushOnGraspHangJump2.2定义谓词Site(x,w):物体x的位置是wHold(z):z手中拿着香蕉On(z):z

  • mpvue小程序轮播图绑定动态点击事件

    mpvue小程序轮播图绑定动态点击事件分享一个mpvue小程序轮播图绑定动态点击跳转页面,这个源码可以直接引用。

  • 安装配置 | 用同济邮箱账户下载matlab

    安装配置 | 用同济邮箱账户下载matlabrefer:http://software.tongji.edu.cn/Home#9&1544step1/注册同济邮箱同济大学邮件系统登陆:https://mail.tongji.edu.cn/coremail/index.jspstep2/用同济邮箱注册mathwork账户并关联许可证出现提示时,以1830206@tongji.edu.cn登录…

  • SQLiteOpenHelper 操作不成功

    SQLiteOpenHelper 操作不成功

  • 常用的.net开源项目「建议收藏」

    常用的.net开源项目「建议收藏」Json.NEThttp://json.codeplex.com/Json.Net是一个读写Json效率比较高的.Net框架.Json.Net使得在.Net环境下使用Json更加简单。通过LinqToJSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换。

发表回复

您的电子邮箱地址不会被公开。

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