总结一下。进程间通信Inter-process Communication:
-
管道Pipe,非常典型,比如Linux命令中的竖线 ps aux | grep nginx
-
共享内存,多个进程访问同一内存区域,可以使用P/V信号量同步
-
共享文件
-
消息队列
-
Socket(TCP/UDP),包括许多远程调用RPC
-
数据库数据,这个类似共享文件吧
线程间通信类似进程间通信,一般可以用:
-
通道 Channel
-
共享变量,这里的同步就非常重要,包括各种锁
锁类型 |
特点 |
互斥锁 |
基本互斥类型 |
递归锁 |
同一线程可以重复加锁 |
读写锁 |
读共享,写互斥 |
自旋锁 |
忙等待 |