进程

具有独立的内存空间、代码段、数据段、堆栈等,切换进程开销较大

通信方式

  • socket 套接字
  • 管道
  • 信号
  • 信号量
  • 消息队列
  • 共享内存



线程

同一进程下的线程共享内存空间和资源,只有独立的栈和寄存器,切换线程开销较小

通信方式

  • 条件变量
  • 信号量
  • 事件


同步方式

  • 互斥锁:同一时间只有一个线程访问共享资源
  • 自旋锁:自旋等待,适合锁时间短的场景
  • 条件变量:搭配锁使用,实现线程等待/唤醒
  • 信号量:控制并发资源的访问数量