Run a future to completion using a busy loop.
block_on函数接收一个实现了Future trait的参数fut, 然后在一个忙循环中调用.poll()方法,这会阻塞当前线程并占用100%的CPU,直到Future完成。 future中的Waker机制没有被使用。
您可以使用这个来并发地运行多个future,例如join。
这适合于没有或只有有限并发需求的系统,对功耗没有严格要求。
对于更复杂的用例,更推荐使用像embassy-executor
这样的“真正“的执行器,
它支持多任务,并在没有任务需要工作时让核心进入睡眠状态。
Run a future to completion using a busy loop.
This calls .poll()
on the future in a busy loop, which blocks
the current thread at 100% cpu usage until the future is done. The
future’s Waker
mechanism is not used.
You can use this to run multiple futures concurrently with join
.
It’s suitable for systems with no or limited concurrency and without
strict requirements around power consumption. For more complex use
cases, prefer using a “real” executor like embassy-executor
, which
supports multiple tasks, and putting the core to sleep when no task
needs to do work.