No video

Atomics, SharedArrayBuffer, worker_threads в Node.js

  Рет қаралды 9,464

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Потоки: github.com/How...
Атомарные операции: github.com/How...
Курс «100 лекций по программированию» habr.com/post/...
#Atomics #SharedArrayBuffer #worker_threads #nodejs
#javascript #js

Пікірлер: 22
@TimurSevimli
@TimurSevimli Жыл бұрын
Все лекции очень полезные но для меня это один из самых интересных было , конечно же после лекции про акторов, спасибо большое за знаний и полезных примеров!
@RUSGALEDON
@RUSGALEDON 5 жыл бұрын
Урааа, как же долго я ждал ваших видео. А вы Микросервисы будете проходить?
@alexfive7000
@alexfive7000 Жыл бұрын
Вот голова, спасибо большое.) Сложная тема но я хочу понять её тоже. Я тут поразмыслил и думаю как это можно применить в дизайне. Если например я сделаю сайт с одной большой анимацией, где например земля кружится вокруг своей оси, затем вокруг солнца, тут же что-то там на земле мерцает и разделю это всё на части, где каждую часть будет выполнять отдельный воркер, то анимация будет быстрее работать, нежели в основном потоке? Или например я на сайте хочу сделать очень много анимаций и чтобы каждую анимацию обрабатывал свой воркер. Это будет быстрее нежели если бы я всё это написал как обычно в одном .js файле?
@taras7844
@taras7844 2 жыл бұрын
00:00 - початок 03:53 - про worker_threads 12:20 - сепарація на worker i master 14:57 - як використовувати worker 25:00 - про Atomics 41:00 - Atomics і worker_threads робота в парі
@WebDevelopment_Gelistirme
@WebDevelopment_Gelistirme Жыл бұрын
We really need English explanation Hope you can do updated one ..... thank you !!!
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
Sorry, I have no time to translate to English but as a quick solution you can always follow links from description to see code examples in github
@evgenkaban6018
@evgenkaban6018 5 жыл бұрын
Да про микросервисы интересно было б
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
Наступит день и я скажу все, что я думаю про микросервисы )))
@Andrey-qf8uw
@Andrey-qf8uw 4 жыл бұрын
Круто, спасибо Тимур!
@alekseydanchin
@alekseydanchin 4 жыл бұрын
А если SharedArrayBuffer в разных потоках по разному типизируются, то это повлияет на работу Atomics? Например если будут пересекаться области хранения числа в буфере для числе разных разрядностей. Worker унаследован от EventEmitter, то метод postMessage это оболочка для emit? И можно отправить в transferList свой же workerData?
@user-gq8fs4to3v
@user-gq8fs4to3v 2 жыл бұрын
Тимур, возможно ли вынести работу с потоками в отдельный слой абстракции, чтобы не требовалось менять бизнес-логику? Подскажите пожалуйста что посмотреть / почитать чтобы достичь этого.
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Обязательно нужно, такие абстракции называются "примитивы параллельного программирования" и для веба есть стандарт web locks API это примерно так же, как абстракции асинхронного программирования в js: Promise, EventEmitter, ConcurrentQueue
@user-gq8fs4to3v
@user-gq8fs4to3v 2 жыл бұрын
@@TimurShemsedinov, большое спасибо за ответ!
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
@@user-gq8fs4to3v Чтобы алгоритм был абстрагирован от того, однопоточно или многопоточно он запускается нужно его писать в функциональной парадигме
@theb1z0n
@theb1z0n 5 жыл бұрын
Где можно почитать про то, как в nodejs добились многопоточности?
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
kzbin.info/www/bejne/Y6TWdK1-pLp8ba8
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
kzbin.info/www/bejne/hJDblHVojNF2kMU
@TimurShemsedinov
@TimurShemsedinov 5 жыл бұрын
github.com/nodejs/node/pull/20876
@artishoo
@artishoo 2 жыл бұрын
Да с NAPI это можно сделать супер легко. Можно хоть свою реализацию многопоточности сделать.
@tsolaa
@tsolaa 5 жыл бұрын
Are there subtitles in English?
@tsolaa
@tsolaa 5 жыл бұрын
@@TimurShemsedinov Thank you. It is helpful. Yet... there has to be some poor language university student willing to do the translation ;) I do hope.
@TimurSevimli
@TimurSevimli Жыл бұрын
Атомарное замечание о атомарных операций, Atomics.notify не будет уведомлять все процессы, а будет уведомлять все потоки работающие в одном процессе. И еще возвращает число который дает знать, сколько потоков пробуждалось с использованием Atomics.notify (в данном лекции выводиться 0 так как нету потоков).
HTTP сессии и cookies на чистом Node.js
1:39:15
Timur Shemsedinov
Рет қаралды 11 М.
English or Spanish 🤣
00:16
GL Show
Рет қаралды 7 МЛН
Get 10 Mega Boxes OR 60 Starr Drops!!
01:39
Brawl Stars
Рет қаралды 19 МЛН
Необработанные ошибки в промисах на Node.js
31:32
Типизированные массивы в JavaScript
39:43
Timur Shemsedinov
Рет қаралды 8 М.
Скаффолдинг для API, UI и данных
31:03
Timur Shemsedinov
Рет қаралды 5 М.
PROOF JavaScript is a Multi-Threaded language
8:21
Beyond Fireship
Рет қаралды 275 М.
Межпроцессовое взаимодействие в Node.js
46:11