Efficiently schedule work and inspect the hardware environment on many-processor systems.

On systems with 100+ logical processors, taking direct control over work placement can yield 
superior performance by ensuring data locality and avoiding expensive cross-processor transfers.

```rust
use many_cpus::SystemHardware;

let threads = SystemHardware::current()
    .processors()
    .spawn_threads(|processor| {
        println!("Spawned thread on processor {}", processor.id());

        // In a real service, you would start some work handler here, e.g. to read
        // and process messages from a channel or to spawn a web handler.
    });
```

## See also

More details in the [package documentation](https://docs.rs/many_cpus/).

This is part of the [Folo project](https://github.com/folo-rs/folo) that provides mechanisms for
high-performance hardware-aware programming in Rust.