Рубрика «очередь»

Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал.

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) - 1

Но перед тем как начать основной материал нам нужно сделать вводную. Итак, давайте начнем с определений: что такое стек и очередь?

Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» LIFO

Очередь — это коллекция, элементы которой получают по принципу («первый вошел, первый вышел» FIFO

Окей, продолжим.

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) - 2

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

Читать полностью »

Все чаще замечаю, что современным самоучкам очень не хватает матчасти. Все знают языки, но мало основы, такие как типы данных или алгоритмы. Немного про типы данных.

Еще в далеком 1976 швейцарский ученый Никлаус Вирт написал книгу Алгоритмы + структуры данных = программы.

40+ лет спустя это уравнение все еще верно. И если вы самоучка и надолго в программировании пробегитесь по статье, можно по диагонали. Можно код кофе.

Основные структуры данных. Матчасть. Азы - 1
Читать полностью »

В одном строительном гипермаркете есть 18 касс, и надо уметь делать так, чтобы кассиры открывали их вовремя, чтобы очередь не была больше 4 человек. Ну, и чтобы лишние кассы не простаивали открытыми. Это распознавание людей (подсчёт покупателей) с видео, аналитика по погоде и другим факторам и предсказание потока. Плюс много другой забавной статистики.

Как мы отличали тележку от прораба — видеоаналитика для кассовой зоны гипермаркета (и продолжение про кота-терминатора) - 1
Пример очереди перед кассой — картинка обрезанная и замыленная по просьбе безопасников, по факту очередь мы видим длиннее, чем на фото.

В рознице первым вопросом стало то, как отличить прораба от тележки. И это было ничуть не смешно.

Да, и тем, кто переживал за кота-терминатора из прошлого поста — его поймали. Детали в конце.Читать полностью »

День добрый. Недавно столкнулся с такой задачей: «Объединить две очереди таким образом, чтобы суммарная очередь была отсортирована». Причём требование для сортировки такое: не использовать никаких промежуточных объектов, кроме одной переменной, каким бы медленным алгоритм ни был. Первые попытки составить алгоритм сортировки очереди приводили к вопросу о том, как выйти из бесконечного цикла, но в конечном итоге я получил необходимый алгоритм, о котором и пойдёт речь.
Читать полностью »

В начале декабря, глядя на статистику продаж, Николай потирал руки: заказов было в два раза больше, чем в ноябре, и месяц обещал январский отпуск в Красной поляне. К 20 числу продажи начали падать. Почтовый ящик поддержки превратился в горшочек из сказки, который варил без остановки и никакие волшебные слова не помогали. Пришлось самому сесть за письма, но поддержка все равно не справлялась: отвечали долго, клиенты злились и заказывали в другом магазине. Что помешало команде Николая выдержать наплыв обращений перед новым годом? Николай не учел нагрузку. В университете он прогуливал Теорию массового обслуживания и теперь не рассчитал, сколько сотрудников ему понадобится во время пика обращений. Кроме того, команда хаотично обрабатывала заявки без четкого плана и не смогла удержать очередь за хвост.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js