¿Cuánto tarda en ejecutarse este código?
Es:
library(future)
plan(multiprocess, workers = 4)
system.time({
a1 <- future({Sys.sleep(7); 1})
a2 <- future({Sys.sleep(1); 1})
a3 <- future({Sys.sleep(1); 1})
a4 <- future({Sys.sleep(1); 1})
a5 <- future({Sys.sleep(1); 1})
a6 <- future({Sys.sleep(1); 1})
a7 <- future({Sys.sleep(1); 1})
res <- sapply(list(a1, a2, a3, a4, a5, a6, a5), value)
})Piensa antes las posibles opciones:
- ~8 segundos: ejecuta primero
a1-a4en 7 segundos y luegoa5-a7en un segundo adicional. - ~7 segundos: ejecuta primero
a1-a4, pero cuando acabana2-a4, lanzaa5-a7, que terminan antes quea1 - ¿Otras?
Vosotros mismos.
(Pensad que si la respuesta fuese ~7 segundos, podría hacerse esto directamente con future).