信号量的作用

信号量一般是伴随共享内存一起使用的。

脑想一下,如果只有共享内存,没有信号量,可不可以?

两个互不相干的进程共享同一块共享内存,一个进程想要读取数据时,它怎么直到共享内存中的数据有没有准备好,想要写入时,它怎么知道有没有别的进程正在读取,会不会影响到别人。

这时,信号量就是一个好的解决办法,访问共享内存之前,先获取信号量,这样就能保证在没有其它人访问的情况下访问;访问时占有信号量,相当于上锁,保证别人在此期间无法访问;访问后释放信号量,别的进程获得信号量,相当于获得访问共享内存的权限,可以访问了。