MST

星途 面试题库

面试题:并发与同步之优化同步机制基础

在操作系统中,常用的同步机制有信号量、互斥锁等。请简述信号量与互斥锁的区别,并举例说明在何种场景下使用信号量能优化系统效率。
10.6万 热度难度
操作系统并发与同步

知识考点

AI 面试

面试题答案

一键面试

区别

  1. 本质
    • 互斥锁:是一种特殊的二元信号量,值只能是0或1,用于实现对临界区的互斥访问,保证同一时间只有一个线程能进入临界区。
    • 信号量:其值可以是任意非负整数,通过计数器来控制同时访问资源的线程数量。
  2. 功能侧重
    • 互斥锁:主要解决“互斥”问题,确保多线程环境下临界资源不被同时访问。
    • 信号量:更侧重于“同步”,协调线程对共享资源的访问数量。
  3. 使用场景
    • 互斥锁:适用于同一时刻只允许一个线程访问临界资源的场景。
    • 信号量:适用于同一时刻允许一定数量线程访问共享资源的场景。

优化场景举例

假设有一个网络服务器,同时能处理的最大连接数为10个(即共享资源数量为10)。如果使用互斥锁,那么同一时刻只能有一个客户端连接进来,这会极大浪费服务器资源,因为服务器本身有能力处理10个连接。而使用信号量,将信号量初始值设为10,当有客户端连接时,信号量值减1,当客户端断开连接,信号量值加1 。这样,最多可以有10个客户端同时连接到服务器,充分利用了服务器的处理能力,优化了系统效率。