¿Cuál es el mejor enfoque para encapsular el bloqueo de E / S en futuros rs?

yo leo eldocumentación de tokio y me pregunto cuál es el mejor enfoque para encapsular costosas E / S sincrónicas en el futuro.

Con el marco del reactor, obtenemos la ventaja de un modelo de subprocesamiento verde: unos pocos subprocesos del sistema operativo manejan muchas tareas concurrentes a través de un ejecutor.

El modelo futuro de tokio está impulsado por la demanda, lo que significa que el futuro mismo sondeará su estado interno para proporcionar información sobre su finalización; permitiendo capacidades de contrapresión y cancelación. Según tengo entendido, la fase de sondeo del futuro no debe ser bloqueante para que funcione bien.

La E / S que quiero encapsular se puede ver como una operación larga, atómica y costosa. Idealmente, una tarea independiente realizaría la E / S y el futuro asociado sondearía el hilo de E / S para el estado de finalización.

Las dos únicas opciones que veo son:

Incluya el bloqueo de E / S en elpoll función del futuro.generar un subproceso del sistema operativo para realizar la E / S y utilizar el mecanismo futuro para sondear su estado, comomostrado en la documentación

Según tengo entendido, ninguna de las soluciones es óptima y no aprovecha al máximo el modelo de subprocesamiento verde (el primero no se recomienda en la documentación y el segundo no pasa por el ejecutor proporcionado por el marco del reactor). ¿Hay otra solución?

Respuestas a la pregunta(1)

Su respuesta a la pregunta