Blocking vs Async I/O

Discussions debate the effects of synchronous blocking I/O on processes and performance, contrasting it with non-blocking and asynchronous I/O models in contexts like networking, servers, Rust, and Node.js.

📉 Falling 0.4x Programming Languages
3,094
Comments
19
Years Active
5
Top Authors
#7441
Topic ID

Activity Over Time

2008
12
2009
34
2010
100
2011
168
2012
150
2013
162
2014
141
2015
175
2016
212
2017
232
2018
129
2019
172
2020
237
2021
218
2022
220
2023
258
2024
282
2025
184
2026
8

Keywords

e.g CPU AIO IOCP EventLoop UI JVM OO i.e NIO async blocking io synchronous thread functions waiting event node loop

Sample Comments

Animats Nov 18, 2015 View on HN

What happens when something blocks for synchronous I/O?

hliyan Mar 19, 2018 View on HN

Asking out of ignorance: won't a synchronous API block the entire process while the I/O is going on?

jahitr Mar 26, 2012 View on HN

No isn't. You can perform synchronus actions. A lot of the io functions have a blocking version.

caleblloyd May 21, 2017 View on HN

I think they meant that there is never blocking I/O

Matthias247 Jul 2, 2016 View on HN

Only if you are sticking to synchronous IO. With nonblocking and async IO it gets much more complicated.

jnordwick May 16, 2019 View on HN

That's non blocking, not async as in the async that rust is developing.

dxuh Feb 15, 2023 View on HN

Probably any IO heavy workload, which usually requires async if it should be performant (like in all other programming languages too).

twic Feb 22, 2023 View on HN

So don't use async. You can get a very, very long way with threads and good old fashioned blocking I/O.

adamnemecek Apr 9, 2015 View on HN

You said that this was in the context of async I/O.

dragonwriter May 29, 2020 View on HN

They aren't async by nature, just time consuming. Async is a useful way of dealing with time consuming operations in some situations, but blocking calls also a work (and make more sense for some workloads.)