WEB开发秘籍程序员干货

线程间的通信、同步方式与进程间通信方式

2014-10-18  本文已影响31077人  eesly_yuan
1、线程间的通信方式
1)定义消息#define WM_THREAD_SENDMSG=WM_USER+20;  
2)添加消息函数声明afx_msg int OnTSendmsg(); 
3)添加消息映射ON_MESSAGE(WM_THREAD_SENDMSG,OnTSM) 
4)添加OnTSM()的实现函数;
5)在线程函数中添加PostMessage消息Post函数
1)创建一个CEvent类的对象:CEvent threadStart;它默认处在未通信状态; 
2)threadStart.SetEvent();使其处于通信状态; 
3)调用WaitForSingleObject()来监视CEvent对象

2、线程间的同步方式

各个线程可以访问进程中的公共变量,资源,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性。数据之间的相互制约包括
1、直接制约关系,即一个线程的处理结果,为另一个线程的输入,因此线程之间直接制约着,这种关系可以称之为同步关系
2、间接制约关系,即两个线程需要访问同一资源,该资源在同一时刻只能被一个线程访问,这种关系称之为线程间对资源的互斥访问,某种意义上说互斥是一种制约关系更小的同步

线程间的同步方式有四种


3、进程间通信方式

进程间通信又称IPC(Inter-Process Communication),指多个进程之间相互通信,交换信息的方法。根据进程通信时信息量大小的不同,可以将进程通信划分为两大类型:
1、低级通信,控制信息的通信(主要用于进程之间的同步,互斥,终止和挂起等等控制信息的传递)
2、高级通信,大批数据信息的通信(主要用于进程间数据块数据的交换和共享,常见的高级通信有管道,消息队列,共享内存等).


4、好文推荐(reference)

上一篇下一篇

猜你喜欢

热点阅读