操作系统学习:通信与锁

进程间的通信方式

管道:

  1. 匿名管道:特殊文件只存在内存里,只能父子进程或者兄弟进程通信
  2. 命名管道:建立了一个设备文件,通过对文件读写进行通信

消息队列:

内核里通过链表组织消息,克服了管道通信数据无格式的问题

信号量:

计数器,类似WaitGroup,当进程想要访问资源的时候就递减信号量,访问完后就递增

信号:

类似于context里的WithCancel,通知事件处理

共享内存

线程间同步方式

互斥锁,读写锁,信号量,条件变量,自旋锁

  1. 互斥锁,就是最普遍的,获取锁的时候只有一个线程可以访问资源
  2. 读写锁,读可以共享写不可以,在读多写少下并发性能更好
  3. 和进程间通信一样,就是计数器加减
  4. 自旋锁:在获取到锁之前会不断尝试获取锁
  5. 条件变量:用于线程之间进行条件同步,一个线程可以等待某个条件满足

操作系统学习:通信与锁
http://example.com/2024/06/13/操作系统学习:通信与锁/
作者
WoodQ
发布于
2024年6月13日
许可协议