linux等待队列小问题,本人小白

请问linux等待队列机制,可以将多个进程放到同一个等待队列中的吗?如果可以,请说说大致编程思路。基础的我基本都看了,其实我是想知道,一条等待队列只能对应一个进程吗?一条等待队列中能有多个进程吗?(如果可以)等待队列项是否为此而服务的?
请问可以将等待队列头从内核导出,再在其他驱动中将其进程添加到该等待队列头所属的等待队列中吗?这样是否就能实现了一条等待队列中有多个进程在其中等待呢(若这样不行,那应该用什么方法呢)?

阅读 2.8k
3 个回答

首先回答你的第一个问题,等待队列就是给多进程使用的,如若不然,一个进程进入等待之后,谁来唤醒这个队列呢?但是等待队列可不是为进程服务,他是为全局数据服务的。

第二个问题怎么编程,这个得自己尝试,思路就是定义一个一个全局的等待队列,然后在不同的进程上下文调用这个全局数据区(临界区)数据,那么首先询问是否有人正在读取这个数据,如果没有则不需要进入等待队列,如果有则需要进入等待队列。

可能看起来很复杂,举个例子,比如信号量这个锁内部就是采用了等待队列进行实现的(其他许多锁也是)。

你这问的太宽泛了,先搞清楚需求和应用场景,这才是写程序第一个考虑的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题