请问linux等待队列机制,可以将多个进程放到同一个等待队列中的吗?如果可以,请说说大致编程思路。基础的我基本都看了,其实我是想知道,一条等待队列只能对应一个进程吗?一条等待队列中能有多个进程吗?(如果可以)等待队列项是否为此而服务的?
请问可以将等待队列头从内核导出,再在其他驱动中将其进程添加到该等待队列头所属的等待队列中吗?这样是否就能实现了一条等待队列中有多个进程在其中等待呢(若这样不行,那应该用什么方法呢)?
请问linux等待队列机制,可以将多个进程放到同一个等待队列中的吗?如果可以,请说说大致编程思路。基础的我基本都看了,其实我是想知道,一条等待队列只能对应一个进程吗?一条等待队列中能有多个进程吗?(如果可以)等待队列项是否为此而服务的?
请问可以将等待队列头从内核导出,再在其他驱动中将其进程添加到该等待队列头所属的等待队列中吗?这样是否就能实现了一条等待队列中有多个进程在其中等待呢(若这样不行,那应该用什么方法呢)?
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答798 阅读✓ 已解决
2 回答3.2k 阅读
首先回答你的第一个问题,等待队列就是给多进程使用的,如若不然,一个进程进入等待之后,谁来唤醒这个队列呢?但是等待队列可不是为进程服务,他是为全局数据服务的。
第二个问题怎么编程,这个得自己尝试,思路就是定义一个一个全局的等待队列,然后在不同的进程上下文调用这个全局数据区(临界区)数据,那么首先询问是否有人正在读取这个数据,如果没有则不需要进入等待队列,如果有则需要进入等待队列。
可能看起来很复杂,举个例子,比如信号量这个锁内部就是采用了等待队列进行实现的(其他许多锁也是)。