Martes

Util para

No util para

Diapositivas

3-async.pdf


Notas

3-async.pdf

Notas - Cap 20

Modelo await/async

<aside> 💡 Importante:

</aside>

Ejemplos en Rust

async fn hello() -> String {
    println!("before hello");
    task::sleep(Duration::from_secs(2)).await;
    println!("after hello");
    String::from("Hello")
}

async fn world() -> String {
    println!("before world");
    task::sleep(Duration::from_secs(1)).await;
    println!("after world");
    String::from(" World!")
}

async fn async_main() -> String {
    hello().await + world().await.as_str() 
// Espera ambas awaits antes de retornar con el String.
// Mientras espera, retorna Pending 
}

fn main() {
    println!("{}", task::block_on(async_main()));
// block_on se encarga de administrar las tareas en el thread.
// El codigo no avanza hasta que block_on devuelva una respuesta a imprimir
		println!("Termine");
}

Ver ejemplo de creacion y espera de tareas en Tarea

Clase Grabada

https://drive.google.com/file/d/1LCuDdwxxTRFh-db_vulJFFM4VDG7Roqc/view

Referencias