使用Tokio异步读取文件的多个部分

时间:2019-07-19 08:46:50

标签: rust rust-tokio

我真的被铁锈这个非常简单的问题困住了:

理想情况下,使用单核CPU,我希望能够以非阻塞方式读取同一文件的一部分:

struct PrefetchOp {
}

impl PrefetchOp {

  async fn start (currentData: [u8;8]) {
    let next = self.prefetch(); // this reads data from disk and puts it in memory
    self.perform_slow_step(currentData);

    let mut future
    for x in 0..100 {
      future = self.prefetch();
      self.perform_slow_step(next.await);
      next = future;
    }
  }
}

现在,我想编写一个预取信息,以异步方式读取数据,以便希望它可以在下一个缓慢的步骤中准备好,或者该行将等待它完成。

现在,预取正在读取同一文件的某些部分,而我的计划是:

  • 实现创建文件描述符,执行poll_seek和执行poll_read的未来
  • 或者,在循环之前创建一个文件描述符,并具有将来执行poll_seekpoll_read的功能。那我不会有并发问题吗?

如何以最简单,最优雅的方式做到这一点?

0 个答案:

没有答案