Atomics, SharedArrayBuffer, worker_threads в Node.js

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ต.ค. 2024

ความคิดเห็น • 24

  • @TimurSevimli
    @TimurSevimli ปีที่แล้ว +1

    Все лекции очень полезные но для меня это один из самых интересных было , конечно же после лекции про акторов, спасибо большое за знаний и полезных примеров!

    • @suleymanbasir6347
      @suleymanbasir6347 2 หลายเดือนก่อน

      Timurrrrrrrrrrrrrrrrrrrrrrrr :D Asselamun Aleykum :D

  • @alexfive7000
    @alexfive7000 2 ปีที่แล้ว +3

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

  • @RUSGALEDON
    @RUSGALEDON 5 ปีที่แล้ว +6

    Урааа, как же долго я ждал ваших видео. А вы Микросервисы будете проходить?

  • @alekseydanchin
    @alekseydanchin 4 ปีที่แล้ว

    А если SharedArrayBuffer в разных потоках по разному типизируются, то это повлияет на работу Atomics? Например если будут пересекаться области хранения числа в буфере для числе разных разрядностей.
    Worker унаследован от EventEmitter, то метод postMessage это оболочка для emit? И можно отправить в transferList свой же workerData?

  • @АндрейБондаренко-к4т
    @АндрейБондаренко-к4т 2 ปีที่แล้ว +1

    Тимур, возможно ли вынести работу с потоками в отдельный слой абстракции, чтобы не требовалось менять бизнес-логику?
    Подскажите пожалуйста что посмотреть / почитать чтобы достичь этого.

    • @TimurShemsedinov
      @TimurShemsedinov  2 ปีที่แล้ว +1

      Обязательно нужно, такие абстракции называются "примитивы параллельного программирования" и для веба есть стандарт web locks API это примерно так же, как абстракции асинхронного программирования в js: Promise, EventEmitter, ConcurrentQueue

    • @АндрейБондаренко-к4т
      @АндрейБондаренко-к4т 2 ปีที่แล้ว

      @@TimurShemsedinov, большое спасибо за ответ!

    • @TimurShemsedinov
      @TimurShemsedinov  2 ปีที่แล้ว +2

      @@АндрейБондаренко-к4т Чтобы алгоритм был абстрагирован от того, однопоточно или многопоточно он запускается нужно его писать в функциональной парадигме

  • @WebDevelopment_Gelistirme
    @WebDevelopment_Gelistirme ปีที่แล้ว +1

    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

  • @theb1z0n
    @theb1z0n 5 ปีที่แล้ว +4

    Где можно почитать про то, как в nodejs добились многопоточности?

    • @TimurShemsedinov
      @TimurShemsedinov  5 ปีที่แล้ว +5

      th-cam.com/video/-ssCzHoUI7M/w-d-xo.html

    • @TimurShemsedinov
      @TimurShemsedinov  5 ปีที่แล้ว +5

      th-cam.com/video/N_xcB2WlCZc/w-d-xo.html

    • @TimurShemsedinov
      @TimurShemsedinov  5 ปีที่แล้ว +5

      github.com/nodejs/node/pull/20876

    • @artishoo
      @artishoo 2 ปีที่แล้ว

      Да с NAPI это можно сделать супер легко. Можно хоть свою реализацию многопоточности сделать.

  • @evgenkaban6018
    @evgenkaban6018 5 ปีที่แล้ว +3

    Да про микросервисы интересно было б

    • @TimurShemsedinov
      @TimurShemsedinov  5 ปีที่แล้ว +11

      Наступит день и я скажу все, что я думаю про микросервисы )))

  • @Andrey-qf8uw
    @Andrey-qf8uw 4 ปีที่แล้ว

    Круто, спасибо Тимур!

  • @TimurSevimli
    @TimurSevimli ปีที่แล้ว

    Атомарное замечание о атомарных операций, Atomics.notify не будет уведомлять все процессы, а будет уведомлять все потоки работающие в одном процессе. И еще возвращает число который дает знать, сколько потоков пробуждалось с использованием Atomics.notify (в данном лекции выводиться 0 так как нету потоков).

  • @taras7844
    @taras7844 2 ปีที่แล้ว +4

    00:00 - початок
    03:53 - про worker_threads
    12:20 - сепарація на worker i master
    14:57 - як використовувати worker
    25:00 - про Atomics
    41:00 - Atomics і worker_threads робота в парі

  • @tsolaa
    @tsolaa 5 ปีที่แล้ว +1

    Are there subtitles in English?

    • @tsolaa
      @tsolaa 5 ปีที่แล้ว +1

      @@TimurShemsedinov Thank you. It is helpful. Yet... there has to be some poor language university student willing to do the translation ;) I do hope.

  • @suleymanbasir6347
    @suleymanbasir6347 2 หลายเดือนก่อน

    ​ @TimurShemsedinov Asselamu Aleykum Timur Aka :D