操作系统信号量通俗理解

来源:互联网 发布:安卓软件培训 编辑:程序博客网 时间:2024/05/24 06:49

操作系统信号量,生产者和消费者问题,哲学家问题,我一直没有搞明白,最近找实习,又学习一次,下面是信号量的通俗理解。

P操作(信号量 S)

S = S-1;if(s>=0)    线程继续执行if(s<0)    线程阻塞

可以把P操作看成排队,S = S-1,如果S>=0,说明前面还有通道可以通过,不必排队等候;如果S<0,说明前面已经有人在排队了,你需要等候;
V操作

S = S+1;如果S > 0    该线程继续执行如果S<=0    该线程去唤醒另一个在该信号量上等待的线程,然后继续执行

S = S+1后,如果S>0,说明没有线程阻塞在该信号量上,不需要唤醒其他线程操作;如果S<=0,说明有线程阻塞在该信号量上,该线程去唤醒其他线程后在执行。

后续再写生产者和消费者,哲学家问题

0 0