Blocking I/O yana dakatar da thread mai kira har sai aikin ya ƙare; non-blocking I/O yana dawowa nan da nan kuma yana barin thread ya yi wani aiki yayin da aikin ke ƙarewa. Sync da async suna bayyana ra'ayi ɗaya a matakin API.
Blocking I/O yana dakatar da thread mai kira har sai aikin ya ƙare; non-blocking I/O yana dawowa nan da nan kuma yana barin thread ya yi wani aiki yayin da aikin ke ƙarewa. Sync da async suna bayyana ra'ayi ɗaya a matakin API.
read() har sai bayanai sun iso. Mai sauƙi, amma thread yana zaune babu aiki dukan lokacin — don yi wa clients N masu jinkiri hidima kana buƙatar threads N.Blocking: ──[ wait for disk ]── (thread stuck, does nothing)
Non-blocking: ──▶ returns now; event loop notified when ready
// Blocking: nothing else runs until the file is read
const data = fs.readFileSync('big.txt');
// Non-blocking: thread keeps going; callback fires later
fs.readFile('big.txt', (err, data) => { /* handle later */ });
// or async/await on top of non-blocking primitives
const data2 = await fs.promises.readFile('big.txt');
Wannan shine tushen servers masu scaling. Node.js da nginx suna sarrafa manyan ƙidayar connections a kan threads kaɗan daidai saboda I/O ba blocking ba ne — jira ba ya ɗaure thread. Yi amfani da blocking calls don sauƙi a scripts; yi amfani da non-blocking don sabis na network mai high-concurrency, kuma kada ka taɓa toshe event loop da aikin CPU mai nauyi.
Ɗakin karatu na tambayoyin hira na IT tare da amsoshi cikakke — daga Junior zuwa Senior.
Ba da Gudummawa