信号量最小化

Semaphore minimization

我在图书馆的一本多线程书籍中偶然发现了一个问题,我想知道我需要做什么才能最大限度地减少信号量的数量。

遇到这种情况你会怎么做?

Semaphores

假设进程P0的执行依赖于其他k进程:P1, ...,Pk。 您需要一个信号量来同步进程并满足这一单一约束。

信号量S0初始化为0,而P0会尝试等待k S0 次(换句话说,它将尝试获取 k 资源)。

每个 k 进程 P1, ..., Pk 将释放 S0 在执行结束时。

这将保证 P0 仅在所有其他 k 进程完成执行后才开始执行(以任何顺序和异步) .

在您提供的link中,您需要4个信号量,T1不需要任何信号量,因为它的执行不依赖于其他任何人。