Concurrency 与信号量(Linux内核)相比,完成是如何轻量级的?

Concurrency 与信号量(Linux内核)相比,完成是如何轻量级的?,concurrency,linux-kernel,synchronization,semaphore,mutual-exclusion,Concurrency,Linux Kernel,Synchronization,Semaphore,Mutual Exclusion,考虑内核中的一个场景,我们在当前线程之外启动一些活动,然后等待该活动完成。使用信号量可以很好地实现这种同步。但是,使用补全被认为是一种很好的做法 为什么在这种情况下,补全优先于信号量 完成可以被视为条件变量,并且大多数情况下,它们是使用带有包装器的信号量实现的。Linux内核中的完成不是这样吗 此外,文档还说,完成比信号量更好、更轻。完成的实现与增加这些优势的信号量有何不同?您能否提供一个链接,指向您发现的源代码,该源代码表示完成被认为比信号量更好的实践方式?:第114页可能的副本我在发布之前检

考虑内核中的一个场景,我们在当前线程之外启动一些活动,然后等待该活动完成。使用信号量可以很好地实现这种同步。但是,使用补全被认为是一种很好的做法

为什么在这种情况下,补全优先于信号量

完成可以被视为条件变量,并且大多数情况下,它们是使用带有包装器的信号量实现的。Linux内核中的完成不是这样吗


此外,文档还说,完成比信号量更好、更轻。完成的实现与增加这些优势的信号量有何不同?

您能否提供一个链接,指向您发现的源代码,该源代码表示完成被认为比信号量更好的实践方式?:第114页可能的副本我在发布之前检查了该帖子。我看到它关注的是基于用例的差异,而我的问题是关于它们在Linux内核中的设计/架构的差异。请撤消重复标签,我们可以得到该帖子的答案。