线程间的通信同步方式与进程间通信方式
Posted zhaodun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程间的通信同步方式与进程间通信方式相关的知识,希望对你有一定的参考价值。
1.线程间的通信方式
1)使用全局变量(由于多个线程可能更改全局变量,因此全局变量最好声明为volatile)
2) 使用消息实现通信
3)使用事件CEvent类实现线程间的通信
2.同步/异步(C端)
同步:在C端发出一个功能调用时,没有得到结果之前就不返回
异步: 一个请求通过事件触发后,得到服务器处理后才处理完毕
3. 阻塞/非阻塞(S端)
阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
4.
1.) 同步,就是我客户端(c端调用者)调用一个功能,该功能没有结束前,我(c端调用者)死等结果。
2. )异步,就是我(c端调用者)调用一个功能,不需要知道该功能结果,该功能有结果后通知我(c端调用者)即回调通知。
3.) 阻塞, 就是调用我(s端被调用者,函数),我(s端被调用者,函数)没有接收完数据或者没有得到结果之前,我不会返回。
4. )非阻塞, 就是调用我(s端被调用者,函数),我(s端被调用者,函数)立即返回,通过select通知调用者
同步IO和异步IO的区别就在于:数据访问的时候进程是否阻塞!
阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!
以上是关于线程间的通信同步方式与进程间通信方式的主要内容,如果未能解决你的问题,请参考以下文章