Linux系统中进程和线程的通信方式总结

800阅读 0评论2013-11-01 我本痴情
分类:LINUX

Linux系统中的进程通信方式主要以下几种:

同一主机上的进程通信方式

   * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal)

   * System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)

网络主机间的进程通信方式

   * RPC: Remote Procedure Call 远程过程调用

   * Socket: 当前最流行的网络通信方式, 基于TCP/IP协议的通信方式.

 

各自的特点:

 

Linux系统中的线程通信方式主要以下几种:

*  锁机制:包括互斥锁、条件变量、读写锁

   互斥锁提供了以排他方式防止数据结构被并发修改的方法。

   使用条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。

   读写锁允许多个线程同时读共享数据,而对写操作是互斥的。

*  信号量机制(Semaphore):包括无名线程信号量和命名线程信号量

*  信号机制(Signal):类似进程间的信号处理

 

线程间的通信目的主要是用于线程同步。所以线程没有像进程通信中的用于数据交换的通信机制。

上一篇:Linux中进程的阻塞和挂起的区别
下一篇:Linux和Windows下的system函数