Semaphore机制 VS 锁机制配合条件变量

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:13:03
遇到个实验,我猜测这2个东西都可以实验同一目标,请用通俗易懂的语言来描述该目标是什么?

如果不是这样,请务必修正我提问中的错误!

这个很难有什么通俗的方式讲清楚, 因为他们处理的是纯粹的机器状况,在现实中没什么对应的东西。

大致说一下的话信号量(就是Semaphore)就像是一个排号机制, 想像一下,一个窗口里面是有人在生产某种规格一致的产品,外面是一些顾客。 信号量就像这个窗口。 一个成品放在窗口上,如果有顾客在等待,其中的一个就可以拿走产品。 如果没顾客在等待,产品就会累积起来, 新来的顾客可以直接拿东西走人。
普通变量是无法完成这个任务的,因为“检测它大于0”和“将变量减1”这两个动作不能保证一起完成,所以无法避免两个人同时拿商品或者两个人都谦让的情况出现。

至于锁机制, 有点太泛泛了, 很多东西都号称锁机制, 不知道你想用的是哪些。 windows api提供一套互斥锁的函数,虽然速度很快,但功能有点简单。