这是我正在从事的一项任务,不,我不是在寻找您给我答案。我只需要有人指出正确的方向即可,也许需要一行或两行示例代码。

我需要弄清楚如何在程序中设置文件读取操作的优先级。要点:

  • 服务器进程接收到一条消息,并生成一个子进程来处理它。
  • 子级尝试从消息中打开文件名,然后开始将文件内容加载到消息队列
  • 可能同时运行多个子进程,并且初始消息包含优先级,因此某些消息可能会获得更多设备访问权限

  • 我可以想到的唯一方法(无论如何,现在)是每次我创建一条消息时都要增加一个计数器,并在计数器达到该进程的指定优先级的给定值之后执行sched_yield之类的操作。这很可能是一种可怕的方法,但这是我目前能想到的。分配比消息队列更重要,但是我们仍然必须具有数据传输优先级。

    任何帮助/指导表示赞赏:)

    最佳答案

    让子进程池共享一个信号量。一旦 child 获得了信号量,它就可以从资源中读取预定义数量的字节,并将其返回给客户端。读取的字节数可以与请求的优先级相关。一旦进程读取了预定义的字节数,则释放信号量。

    关于c - Linux和C : How to set file reading priority in multi-process program?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/518898/

    10-11 17:02