I/O-bound work
I/O-bound work is work whose progress or completion is primarily limited by input and output operations or waiting for external resources rather than computation.
Python Concurrency with asyncio
Blocking I/O work is work whose progress can wait for input or output operations that do not complete immediately.
- How it is used
- Guides concurrency choices for applications dominated by network, storage, database, or other input/output waiting.
- How deep it goes
- Explains limiting factors, mixed workloads, asynchronous pausing, and event-loop scheduling without detailing device internals.
- Examples
- Uses web requests, file reads and writes, database queries, header formatting, and concurrent product lookups as concrete examples.
- What you can do after
- Apply it with asyncio, non-blocking sockets, connection pools, or thread pools to run independent blocking operations concurrently.
Read how Python Concurrency with asyncio explains I/O-bound work →
Rust Servers, Services, and Apps
An I/O-bound program is a program whose progress rate is primarily limited by the speed of input and output operations.
- How it is used
- Guides choosing asynchronous execution for file, database, network, and web-server workloads dominated by external waits.
- How deep it goes
- Defines the bottleneck, contrasts CPU-bound work, and demonstrates runtime scheduling without fully developing asynchronous internals.
- Examples
- Uses file reads, database access, TCP/HTTP requests, timers, and two Tokio-spawned file futures as examples.
- What you can do after
- Evaluate whether asynchronous task execution fits workloads whose progress depends on file, database, network, or timer operations.
Read how Rust Servers, Services, and Apps explains I/O-bound work →
Grokking Concurrency
An I/O-bound operation is an operation whose completion primarily depends on input/output activity or waiting for external hardware or services.
- How it is used
- Distinguishes device-waiting bottlenecks from computation bottlenecks when choosing how to improve program performance.
- How deep it goes
- Defines the bottleneck, illustrates waiting with workloads, and follows blocked tasks through scheduling without detailing device internals.
- Examples
- Uses file searching, network-to-disk transfer, graphical input, and a one-core arcade game to contrast waiting with computation.
- What you can do after
- Diagnose/debug with it by identifying whether I/O waiting, rather than processor speed, limits a workload.
100 Go Mistakes and How to Avoid Them
An I/O-bound workload is a workload whose execution time is primarily limited by input and output operations or an external system.
- How it is used
- Classifies workloads to guide concurrency design and worker-pool sizing.
- How deep it goes
- Defines I/O-bound work, contrasts it with CPU-bound work, and works through worker-pool consequences without reducing sizing to one formula.
- Examples
- Uses REST calls, database queries, repeated io.Reader reads, and a ten-goroutine worker pool.
- What you can do after
- Diagnose workload type and choose goroutine counts using external-system constraints rather than CPU capacity alone.
Read how 100 Go Mistakes and How to Avoid Them explains I/O-bound work →
Starting Data Analytics with Generative AI and Python
An I/O-bound task is a computation whose execution time is primarily limited by input or output operations rather than processor computation.
- How it is used
- Distinguishes whether performance is limited by external input/output or processor computation during scaling and optimization.
- How deep it goes
- Defines the bottleneck, gives examples, recommends measurements, and stops short of detailed asynchronous-I/O implementation.
- Examples
- Uses large-file reads, internet downloads, user input, and a Python monitor sampling CPU, disk I/O, and memory.
- What you can do after
- Diagnose/debug with CPU, disk, network, and memory measurements, then select storage, I/O, or asynchronous-I/O improvements.
Read how Starting Data Analytics with Generative AI and Python explains I/O-bound work →
Related concepts
- compute-boundcontrasts with · A computation is compute-bound when its performance is limited primarily by available processor or arithmetic capacity rather than memory transfer, input/output, or other resources.
- asyncioused by · asyncio is Python’s standard-library framework for asynchronous programming, built around coroutines, awaitable objects, and event loops.
- threading moduleused by · The threading module is Python’s standard-library interface for creating, managing, and coordinating threads and thread-synchronization primitives.
- parallelismused by · Parallelism is the concurrent execution of multiple computational operations, often across multiple processing resources.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.




