本文介绍了在 Rust 中实现自定义 Future 的方法,重点讨论了 Pin 的作用、Poll 的状态及唤醒机制。通过 Delay 结构体示例,展示了如何检查时间并返回相应状态。同时,介绍了使用 Tokio 实现的 Actor 模式来管理驾驶员位置信息,强调了并发安全和异步通信的特性。
IO模型是指输入输出模型,常见的有磁盘IO和网络IO。应用程序不能直接进行读写操作,而是通过操作系统提供的API来进行。IO调用是应用程序向操作系统发起调用,IO执行是操作系统完成IO操作。一次IO流程包括应用程序发起IO调用、操作系统准备数据、数据准备阶段、数据copy阶段。阻塞IO需要不断调用read函数进行系统调用,而非阻塞IO可以通过循环尝试读写文件描述符。多路复用通过select、poll、epoll函数同时监控多个文件描述符,减少线程资源创建。异步IO模型只需要发送一次请求就可以完成状态询问和数据拷贝的操作。同步IO是发出调用后需要参与等待结果的过程,异步IO是发出调用后自己不参与等待。
完成下面两步后,将自动完成登录并继续当前操作。