尽管在广泛使用,但对于结构良好可维护的代码而言,信号量被认为太低层了。主要有两个问题。首先,因为它们的操作是简单的 subroutine 调用,很容易漏掉。第二,除非它们隐藏在抽象之后,否则信号量往往会分散到整个程序中,使得程序变得难以维护。
13.4.1 Monitors
Monitor 是 Dijkstra 建议的一个信号量的解决方案。
尽管在广泛使用,但对于结构良好可维护的代码而言,信号量被认为太低层了。主要有两个问题。首先,因为它们的操作是简单的 subroutine 调用,很容易漏掉。第二,除非它们隐藏在抽象之后,否则信号量往往会分散到整个程序中,使得程序变得难以维护。
Monitor 是 Dijkstra 建议的一个信号量的解决方案。