PROG_WAY_BLOG Telegram 81
Что такое синхронный и асинхронный код.

Я пост написал, а он слишком большой, так что этот пост про асинхронщину - лишь часть будущей серии постов, скоро будет. Тут мы разберём синхронный и асинхронный код и сделаем это на примере великого и ужасного JavaScript, потому что я всё же выбрал этот язык как свою основную технологию уже давно, даже относительно создания канала. Я кое-как знаю Python, но больше не вижу смысла проталкивать это направление на канале. Итак, слишком много отступлений, переходим к делу.

Что же такое синхронный и асинхронный код в однопоточных языках (типа JavaScript или Python):

Синхронный код - код, который выполняет все описанные функции и алгоритмы последовательно. Если какая-то задача занимает слишком много времени, то весь процесс выполнений кода остановится и дождётся выполнения этой самой операции, и только после получения какого-либо результата пойдёт дальше. В каждый момент времени может выполняться только одна команда, обрабатываемая в единственном — главном потоке. Все остальные действия блокируются до окончания выполнения текущей команды.

Асинхронный код - это тот код, который не блокирует поток при выполнении операции и передаёт управление дальше. Все действия выполняются параллельно, а не последовательно. А если не останавливать поток, то чаще всего мы получим прирост в производительности (ну если сделаем всё правильно, конечно).

Но из-за асинхронного кода могут наблюдаться подобные варианты исполнения кода:

// code
setTimeout(() => {
console.log("Сообщение сразу")
}, 1500)

console.log("Сообщение через 1500мс")

Неподготовленный разработчик ожидает блокировку потока выполнения на первой строке и последовательного выполнения функций в коде, но получает обратное:

// console out
Сообщение через 1500мс
Сообщение сразу

Интерпретатор увидел, что мы хотим получить вывести сообщение в консоль через полторы секунды и не стал ждать, а просто пошёл дальше. Дошёл до второго вывода, а потом через 1500мс вспомнил, что забыл вывести первый лог и выполнил эту асинхронную функцию согласно заданным правилам.

Существует не один способ работы с асинхронным кодом, о которых мы поговорим позже. Вообще этот пост и должен был рассказать об этом подробнее сразу, но получилось как-то слишком много информации, так что пришлось поделить на несколько постов.

В общем, продолжение следует. И спасибо за прочтение спустя 40 дней с прошлого поста. Вы золото ❤️

#web #javascript
👍2



tgoop.com/prog_way_blog/81
Create:
Last Update:

Что такое синхронный и асинхронный код.

Я пост написал, а он слишком большой, так что этот пост про асинхронщину - лишь часть будущей серии постов, скоро будет. Тут мы разберём синхронный и асинхронный код и сделаем это на примере великого и ужасного JavaScript, потому что я всё же выбрал этот язык как свою основную технологию уже давно, даже относительно создания канала. Я кое-как знаю Python, но больше не вижу смысла проталкивать это направление на канале. Итак, слишком много отступлений, переходим к делу.

Что же такое синхронный и асинхронный код в однопоточных языках (типа JavaScript или Python):

Синхронный код - код, который выполняет все описанные функции и алгоритмы последовательно. Если какая-то задача занимает слишком много времени, то весь процесс выполнений кода остановится и дождётся выполнения этой самой операции, и только после получения какого-либо результата пойдёт дальше. В каждый момент времени может выполняться только одна команда, обрабатываемая в единственном — главном потоке. Все остальные действия блокируются до окончания выполнения текущей команды.

Асинхронный код - это тот код, который не блокирует поток при выполнении операции и передаёт управление дальше. Все действия выполняются параллельно, а не последовательно. А если не останавливать поток, то чаще всего мы получим прирост в производительности (ну если сделаем всё правильно, конечно).

Но из-за асинхронного кода могут наблюдаться подобные варианты исполнения кода:


// code
setTimeout(() => {
console.log("Сообщение сразу")
}, 1500)

console.log("Сообщение через 1500мс")

Неподготовленный разработчик ожидает блокировку потока выполнения на первой строке и последовательного выполнения функций в коде, но получает обратное:

// console out
Сообщение через 1500мс
Сообщение сразу

Интерпретатор увидел, что мы хотим получить вывести сообщение в консоль через полторы секунды и не стал ждать, а просто пошёл дальше. Дошёл до второго вывода, а потом через 1500мс вспомнил, что забыл вывести первый лог и выполнил эту асинхронную функцию согласно заданным правилам.

Существует не один способ работы с асинхронным кодом, о которых мы поговорим позже. Вообще этот пост и должен был рассказать об этом подробнее сразу, но получилось как-то слишком много информации, так что пришлось поделить на несколько постов.

В общем, продолжение следует. И спасибо за прочтение спустя 40 дней с прошлого поста. Вы золото ❤️

#web #javascript

BY progway — программирование, IT




Share with your friend now:
tgoop.com/prog_way_blog/81

View MORE
Open in Telegram


Telegram News

Date: |

Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. The channel also called on people to turn out for illegal assemblies and listed the things that participants should bring along with them, showing prior planning was in the works for riots. The messages also incited people to hurl toxic gas bombs at police and MTR stations, he added. Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. 1What is Telegram Channels?
from us


Telegram progway — программирование, IT
FROM American