【发布时间】:2020-06-22 09:26:48
【问题描述】:
我正在尝试了解互斥锁、信号量和临界区,但我对信号量的一些事情不确定。信号量与临界区相同吗? semaphore.h 中关于如何使用信号量的定义说明了用途:
sem_t m;
sem_init(&m, 0, X); // initialize semaphore to X; what should X be?
sem_wait(&m);
// critical section here
sem_post(&m);
所以我的问题真的是“//这里的关键部分”实际上是一个关键部分吗?
【问题讨论】:
-
Semaphore 是一把螺丝刀,可让您构建额外的同步结构。像互斥锁或临界区。后者需要一个二进制信号量,X=1。
标签: semaphore critical-section