您可能要使用补全而不是信号量有两个原因。首先,多个线程可以等待完成,并且可以通过调用来全部释放它们
complete_all()。使信号量唤醒未知数量的线程更为复杂。
其次,如果等待线程要取消分配同步对象,则在使用信号量时会出现竞争。也就是说,在使用唤醒线程完成之前,服务员可能会被唤醒并释放对象
up()。这场比赛并不存在。(请参阅Lasse的帖子。)

您可能要使用补全而不是信号量有两个原因。首先,多个线程可以等待完成,并且可以通过调用来全部释放它们
complete_all()。使信号量唤醒未知数量的线程更为复杂。
其次,如果等待线程要取消分配同步对象,则在使用信号量时会出现竞争。也就是说,在使用唤醒线程完成之前,服务员可能会被唤醒并释放对象
up()。这场比赛并不存在。(请参阅Lasse的帖子。)