|
|
|
|
|
by kentonv
1333 days ago
|
|
OK but whether or not this is a proper definition of "blocking" doesn't really change my point. Alternatively, maybe my point is that disk I/O is not "blocking" either, it just "takes some measurable amount of time". :) EDIT: What this says: https://news.ycombinator.com/item?id=33302587 |
|
Technically the CPU also "blocks" when executing an instruction, let's say adding two numbers, because obviously the sum isn't available in 0 cycles. One might imagine semantics where you explicitly ask some CPU unit to add some numbers and then wait for the result and having blocking or non-blocking wrappers around it but it sort of becomes moot. Generally async/non-blocking operations are abstractions over I/O peripherals that have an async nature, e.g. you submit something and you get some reply later, or you wait for a network packet to come in etc. Reply is often an interrupt.
I agree the lines have blurred a little with modern CPUs (and arguably were always blurry with some peripherals being memory mapped) but something like waiting on a packet to come in or a disk operation to complete is outside the box that you'd draw around the CPU and its more tightly integrated components.