终于看到一篇文章把信号量说清楚了。看了很多网上的关于互斥量与信号量区别的文章,都是死板的定义与术语,而没有从应用场景出发,这篇文章不错,从应用场景上对两者的区别进行了描述。
简单来说:
mutex是为了保证临界资源只被一个线程访问,是为了保证临界资源的线程安全;互斥量的获取者与释放者必须是同一个线程。
semaphore虽然也能提供临界资源保护的功能,但是信号量的应用场景并不是为了保护临街资源,只是为了线程间的同步执行;A线程执行完自己的操作后,发送了semaphore,B线程获取到semaphore后接着执行自己的操作,但是A的操作与B的操作可能没有任何关系,也不会访问相同的临界资源。

本文深入浅出地解析了信号量(semaphore)与互斥量(mutex)的区别,强调了两者在多线程环境中的不同应用。信号量主要用于线程间的同步执行,而互斥量则专注于保护临界资源,确保同一时间只有一个线程访问。
476

被折叠的 条评论
为什么被折叠?



