Path: blob/main/crates/bevy_tasks/examples/idle_behavior.rs
6604 views
//! This sample demonstrates a thread pool with one thread per logical core and only one task1//! spinning. Other than the one thread, the system should remain idle, demonstrating good behavior2//! for small workloads.34#![expect(clippy::print_stdout, reason = "Allowed in examples.")]56use bevy_platform::time::Instant;7use bevy_tasks::TaskPoolBuilder;8use core::time::Duration;910fn main() {11let pool = TaskPoolBuilder::new()12.thread_name("Idle Behavior ThreadPool".to_string())13.build();1415pool.scope(|s| {16for i in 0..1 {17s.spawn(async move {18println!("Blocking for 10 seconds");19let now = Instant::now();20while Instant::now() - now < Duration::from_millis(10000) {21// spin, simulating work being done22}2324println!(25"Thread {:?} index {} finished",26std::thread::current().id(),27i28);29});30}31});3233println!("all tasks finished");34}353637