总结一下。进程间通信Inter-process Communication:

  1. 管道Pipe,非常典型,比如Linux命令中的竖线 ps aux | grep nginx

  2. 共享内存,多个进程访问同一内存区域,可以使用P/V信号量同步

  3. 共享文件

  4. 消息队列

  5. Socket(TCP/UDP),包括许多远程调用RPC

  6. 数据库数据,这个类似共享文件吧

线程间通信类似进程间通信,一般可以用:

  1. 通道 Channel

  2. 共享变量,这里的同步就非常重要,包括各种锁

锁类型 特点
互斥锁 基本互斥类型
递归锁 同一线程可以重复加锁
读写锁 读共享,写互斥
自旋锁 忙等待