@@ -13,7 +13,7 @@ basic understanding of the JavaScript language and Node.js callback pattern.
13
13
14
14
15
15
Этот обзор рассматривает разницу между ** блокирующими** и ** неблокирующими**
16
- вызовами в Node.js. Этот обзор ссылается на цикл событий (Event Loop ) и библиотеку libuv,
16
+ вызовами в Node.js. Он ссылается на цикл событий (event loop ) и библиотеку libuv,
17
17
однако предварительное знание этих тем не требуется. Предпологается, что
18
18
читатели имеют базовое понимание JavaScript и паттерна обратных вызовов (callback)
19
19
в Node.js.
@@ -33,9 +33,9 @@ process must wait until a non-JavaScript operation completes. This happens
33
33
because the event loop is unable to continue running JavaScript while a
34
34
** blocking** operation is occurring.
35
35
36
- ** Блокирование ** происходит , когда исполнению оставшегося JavaScript кода в Node.js
37
- приходится ждать , пока не завершится сторонняя операция (напр. чтение содржания какого-нибудь файла).
38
- Так происходит, потомучто цикл событий не может продолжить исполнение JavaScript
36
+ О ** блокировании ** говорят , когда выполнение оставшегося JavaScript кода в Node.js
37
+ приостановленно до тех пор , пока не завершится работа сторонней операции (напр., чтение
38
+ какого-нибудь файла). Поскольку цикл событий не может продолжить исполнение оставшегося JavaScript
39
39
кода, пока работает ** блокирующая** операция.
40
40
41
41
In Node.js, JavaScript that exhibits poor performance due to being CPU intensive
@@ -44,19 +44,19 @@ referred to as **blocking**. Synchronous methods in the Node.js standard library
44
44
that use libuv are the most commonly used ** blocking** operations. Native
45
45
modules may also have ** blocking** methods.
46
46
47
- В Node.js, медленный код JavaScript, как правило, не называют ** блокирующим** ,
48
- если он является таким по причине высокой нагрузки на ЦПУ , а не по причине
49
- ожидания завершения сторонней операции. Синхронные методы в стандартной
50
- библиотеке Node.js, которые используют libuv, суть самые часто встречающиеся
51
- ** блокирующие ** операции. Нативные модули так же могут иметь ** блокирующие** вызовы.
47
+ В Node.js, медленный код JavaScript, не принято называть ** блокирующим** ,
48
+ если причиной тому высокая нагрузка на процессор , а не ожидание завершения
49
+ сторонней операции. Синхронные методы в стандартной библиотеке Node.js,
50
+ которые используют libuv, наиболее часто встречающиеся ** блокирующие ** операции.
51
+ Нативные модули также могут иметь ** блокирующие** вызовы.
52
52
53
53
All of the I/O methods in the Node.js standard library provide asynchronous
54
54
versions, which are ** non-blocking** , and accept callback functions. Some
55
55
methods also have ** blocking** counterparts, which have names that end with
56
56
` Sync ` .
57
57
58
- Все I/O методы в стандартной библиотеке Node.js предоставляют асинхронные версии,
59
- которые являются ** неблокирующими** , и которые принимаю функции обратного вызова
58
+ Все I/O методы в стандартной библиотеке Node.js предоставляют свои асинхронные версии,
59
+ которые являются ** неблокирующими** , и которые принимают функции обратного вызова
60
60
в качестве аргумента. Некоторые методы также имеют свои ** блокирующие** аналоги.
61
61
Названия таких методов закнчиваются на ` Sync ` .
62
62
@@ -72,7 +72,7 @@ execute **asynchronously**.
72
72
73
73
Using the File System module as an example, this is a ** synchronous** file read:
74
74
75
- Для примера возмкм модуль File System. Это пример ** синхронного** чтения файла:
75
+ Для примера возмем модуль File System. Вот пример ** синхронного** чтения файла:
76
76
77
77
``` js
78
78
const fs = require (' fs' );
@@ -82,7 +82,7 @@ const data = fs.readFileSync('/file.md'); // исполнение кода за
82
82
83
83
And here is an equivalent ** asynchronous** example:
84
84
85
- А здесь эквивалентный ** асинхронный** пример:
85
+ А вот эквивалентный ** асинхронный** пример:
86
86
87
87
``` js
88
88
const fs = require (' fs' );
@@ -101,7 +101,7 @@ shown.
101
101
Первый пример выглядит проще чем второй, но он имеет один недостаток: вторая строка
102
102
** блокирует** исполнение лиюбого нижеследующего кода, пока весь файл не будет считан.
103
103
Обратите внимание, если синхронная версия кода сгененирует исключение (throws an exception),
104
- его нужно поймать , иначе процесс Node.js "упадёт".
104
+ его нужно обработать , иначе процесс Node.js "упадёт".
105
105
106
106
Let's expand our example a little bit:
107
107
@@ -144,6 +144,7 @@ JavaScript кода может продолжаться не дожидаясь
144
144
145
145
146
146
## Concurrency and Throughput
147
+ ## Конкурентность и Пропускная Способность
147
148
148
149
JavaScript execution in Node.js is single threaded, so concurrency refers to the
149
150
event loop's capacity to execute JavaScript callback functions after completing
0 commit comments