是关于进程同步问题所用到的。
应该选D
不过这题有点弱,A也说得过去,无所谓高级低级
解释一下
信号量其实是一个变量,由信号量保护共享资源。
信号量在创建的时候要设一个初始值
表示同时有几个任务可以访问信号量所保护的资源。
初始值为1就变成了互斥(MUTEX)
即 同时只有一个任务可以访问。
简单说 P *** 作就是如果信号量大于1,再把信号量减1。
v *** 作就是把信号量自增1。
运用:
需要访问信号量所保护的共享资源时
调用P,
结束访问时
调用V。
这样,就实现了对共享资源的保护。
呵呵,复习了一下。
信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这个资源。比如对全局变量的访问,有时要加锁, *** 作完了,在解锁。
有的时候锁和信号量会同时使用的。我记得以前做的一个项目就是既有semtake,又有lock。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)