线程间通信的三种方法 (转)
http://www.cnblogs.com/puxidun/archive/2009/12/06/1618142.html
线程间通信的三种方法
1.全局变量
注:定义全局变量时最好使用volatile来定义,以防编译器对此变量进行优化。
常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,
PostMessage为线程向主窗口发送消息。而PostThreadMessage是任意两个线程之间的通信接口。
B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
MS还提供了SendMessage方法进行消息间通讯,SendMessage(),他和PostMessage的区别是:
2.2.PostThreadMessage()
函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam, LPARAM lParam);
目标线程通过GetMessage()方法来接受消息。
3.CEvent对象
线程间通信可以通过下列三种方法:
1)使用全局变量实现线程间通信
2)使用消息实现线程间通信
3)使用CEvent类实现线程间通信
使用全局变量实现线程间通信:
定义一个全局变量,不同的线程间可以通过修改全局变量的值来进行通信。例如:定义一个控制线程的全局变量
volatile int threadController;
当 threadController值为1时,线程running;当threadController为0时,线程stop, 所以可以通过修改threadController的值来控制线程的运行。
使用消息实现线程间通信:
步骤:
1)在View.h中定义消息:
例如:
const WM_THREAD_SENDMESS=WM_USER+20;
2)在view.h中添加消息函数声明:
UINT TreadProc(LPVOID param)
转载于:https://www.cnblogs.com/wb118115/archive/2012/12/18/2824069.html
线程间通信的三种方法 (转)相关推荐
- android线程间通信的几种方法_Android 技能图谱学习路线
Java基础 Java Object类方法 HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理 HashMap 和 HashTable 区别 HashCode 作用,如何重载hashC ...
- 线程间通信的几种方法_并发编程中的线程间通信
线程通信的目标是使线程间能够互相发送信号.另一方面,线程通信使线程能够等待其他线程的信号. 线程通信常用的方式有: wait/notify 等待 Volatile 内存共享 CountDownLatc ...
- android线程间通信的几种方法_Android进程间和线程间通信方式
进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位 ...
- android线程间通信的几种方法_Android线程间通信机制
讲解Handler机制的博文很多,我也看了很多,但说实话,在我对Handler几乎不怎么了解的情况下,每一篇文章我都没太看懂,看完之后脑子里还是充满了疑问.究其原因,是因为几乎每一篇文章一上来就开始深 ...
- 线程间通信的几种实现方式
线程间通信的几种实现方式 首先,要短信线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的.我们来基本一道面试常见的题目来分析: 题目:有两个线程A.B,A线程向一个集合里面 ...
- android 多线程间通信,android实现线程间通信的四种常见方式
1,通过Handler机制 主线程中定义Handler,子线程发消息,通知Handler完成UI更新,Handler对象必须定义在主线程中,如果是多个类直接互相调用,就不是很方便,需要传递conten ...
- python 线程通信的几种方式_进程间通信和线程间通信的几种方式
进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代 ...
- JAVA线程间通信的几种方式
今天在群里面看到一个很有意思的面试题: "编写两个线程,一个线程打印1~25,另一个线程打印字母A~Z,打印顺序为12A34B56C--5152Z,要求使用线程间的通信." 这是一 ...
- 线程间通信的几种方式
Java线程间通信: 1:线程上下文 2:共享内存 3:IPC通信 4:套接字(Socket),不同的机器之间进行通信 另外:附注通信内容: linux常用的进程间的通讯方式 (1).管道(pipe) ...
最新文章
- 饮冰三年-人工智能-linux-07 硬盘分区、格式化及文件系统的管理
- Android应用源码安卓短信拦截木马项目源码
- HDU 3632 A Captivating Match
- jQuery 之父:每天写代码
- XI 安装MS SQLSERVER JDBC 驱动
- 一步一步做搜索(一)
- winrar 去广告_解压缩工具之WinRAR下载安装教程
- 来客电商之微信小程序怎么取名字
- pip install报错 There was a problem confirming the ssl certificate…
- 天气很热,用Python告诉你奶茶哪家最好喝性价比最高?
- 使用远程工具远程连接linux(xshell,xftp,xmanager,xrdp)
- 前端性能监控相关指标
- c语言中cap捕捉函数,CAP理论的理解
- [转载] 暗潮涌动:警惕IBM温情脉脉背后的垄断野心
- 【吾爱破解第一期】破解基础知识之认识壳与程序的特征
- 最简单的太阳能光伏发电系统
- 在header中添加中文头信息
- SP,Substance painter
- mac修改用户名,用户主目录名
- PV、EV、AC、SV、CV、SPI、CPI各是什么意思
热门文章
- 剑指Offer(Java实现)栈的压入、弹出序列
- Hadoop系列七:Hadoop之sqoop篇
- anaconda安装及环境变量配置
- 面试中你必须要知道的语言陷阱
- c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
- 高阶函数||编程范式: 命令式编程/声明式编程 || 编程范式: 面向对象编程(第一公民:对象)/函数式编程(第一公民:函数)
- fetch 发送 AJAX请求
- Python的可变类型和不可变类型
- java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现
- Python 技术篇-百度语音识别API接口调用演示