进程

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

通信方式

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


多进程



进程 API




线程

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

通信方式

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


同步方式

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


多线程

线程安全

保证线程安全的方式



线程 API



进程、线程、协程的区别与使用场景

上下文切换




概念

种类

死锁

乐观锁/悲观锁

CAS

公平锁/非公平锁

无锁