Non-blocking I/O and how Node uses it, in friendly terms: blocking vs async IO, CPU vs IO
The work of fulfilling a request can be split into two pieces: CPU work, which is actively running code and performing calculations, and I/O work, which is waiting for something else to happen. Normally, threads performing I/O must wait until the I/O is complete to continue processing, which is called blocking or synchronous I/O. Non-blocking or asynchronous I/O is an optimization available in some technologies (NodeJS, Java NIO, and others) that allows threads to move on to other work while the I/O is happening in the background.
Feel free to ask questions in the comments below!
00:00 Intro
00:31 Servers & Threads
01:28 A Server Is Like A Restaurant
03:22 A Request Has CPU work (active time) and I/O work (inactive time)
04:27 Code Example
05:03 Nonblocking I/O Timing Diagram
05:29 Blocking I/O Timing Diagram
06:01 Why Isn't Nonblocking I/O More Common?
06:47 Downsides Of Nonblocking I/O
07:42 Recap
Видео Non-blocking I/O and how Node uses it, in friendly terms: blocking vs async IO, CPU vs IO канала Studying With Alex
Feel free to ask questions in the comments below!
00:00 Intro
00:31 Servers & Threads
01:28 A Server Is Like A Restaurant
03:22 A Request Has CPU work (active time) and I/O work (inactive time)
04:27 Code Example
05:03 Nonblocking I/O Timing Diagram
05:29 Blocking I/O Timing Diagram
06:01 Why Isn't Nonblocking I/O More Common?
06:47 Downsides Of Nonblocking I/O
07:42 Recap
Видео Non-blocking I/O and how Node uses it, in friendly terms: blocking vs async IO, CPU vs IO канала Studying With Alex
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![Unicode, in friendly terms: ASCII, UTF-8, code points, character encodings, and more](https://i.ytimg.com/vi/ut74oHojxqo/default.jpg)
![Sync, Async, Blocking and Non-Blocking | Rock the JVM](https://i.ytimg.com/vi/Hlu-zYeNsSU/default.jpg)
![Restricted Stock Units (RSUs) in friendly terms (Part 2 of Equity Compensation & Taxes)](https://i.ytimg.com/vi/HUhv6O1cFFg/default.jpg)
![The Node.js Event Loop: Not So Single Threaded](https://i.ytimg.com/vi/zphcsoSJMvM/default.jpg)
![What the heck is the event loop anyway? | Philip Roberts | JSConf EU](https://i.ytimg.com/vi/8aGhZQkoFbQ/default.jpg)
![Coding Interviews Be Like](https://i.ytimg.com/vi/kVgy1GSDHG8/default.jpg)
![How Node JS Works?](https://i.ytimg.com/vi/YSyFSnisip0/default.jpg)
![Indroduction to Java NIO and non-blocking sockets](https://i.ytimg.com/vi/VhSu1pRIEqQ/default.jpg)
![Intro to Encryption, in Friendly Terms: Cryptography, AES, Man In The Middle, and HTTPS](https://i.ytimg.com/vi/AXkRoFOP-ug/default.jpg)
![Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 2020](https://i.ytimg.com/vi/zeLToGnjIUM/default.jpg)
![Password Storage Tier List: encryption, hashing, salting, bcrypt, and beyond](https://i.ytimg.com/vi/qgpsIBLvrGY/default.jpg)
![[10분 테코톡] 🐰 멍토의 Blocking vs Non-Blocking, Sync vs Async](https://i.ytimg.com/vi/oEIoqGd-Sns/default.jpg)
![AWS re:Invent 2020: Next-gen networking infrastructure with Rust and Tokio](https://i.ytimg.com/vi/MZyleK8elPk/default.jpg)
![Friendly Intro to Hardware Security Modules (HSMs)](https://i.ytimg.com/vi/uewhaNg1BhE/default.jpg)
![How one thread listens to many sockets with select in C.](https://i.ytimg.com/vi/Y6pFtgRdUts/default.jpg)
![The Absolute Best Intro to Monads For Software Engineers](https://i.ytimg.com/vi/C2w45qRc3aU/default.jpg)
![Atomicity, the A of ACID | Software Engineering Dictionary](https://i.ytimg.com/vi/bwgvaLP7Ucg/default.jpg)
![How Node.js Works | Mosh](https://i.ytimg.com/vi/jOupHNvDIq8/default.jpg)
![ITT 2015 - Heinz Kabutz - The Multi-threading, Non Blocking IO](https://i.ytimg.com/vi/uKc0Gx_lPsg/default.jpg)
![Idempotency, a key term in distributed systems | Software Engineering Dictionary](https://i.ytimg.com/vi/QhTj3Ax98sY/default.jpg)