Багатопоточніcть в Java 😈. Сортування Злиттям (Merge Sort) на Fork/Join фреймворку.

  Рет қаралды 5,621

Bobocode

Bobocode

Күн бұрын

👉 Приєднуйся до Bobocode Community: www.bobocode.com/
____________________________________________
Patreon: / bobocode
GitHub: github.com/bobocode-projects
Telegram: t.me/bobocode​
LinkedIn: bit.ly/2RWPQF5
Twitter: bit.ly/3vaQiOl
Тарас в LinkedIn: bit.ly/2ElWg8J
Тарас в Twitter: bit.ly/33Pmuwg
____________________________________________
9-те заняття тренувальної програми Ultimate Enterprise Java (2021).
УВАГА! Відеозапис не містить активної частини заняття.
00:00 - Нарізка основних моментів
03:16 - Початок
03:35 - Чому важливо вивчати багатопоточність?
07:02 - 2 причини, чому багатопоточність є складною
08:17 - Модель памʼяті Java
09:15 - Дві потенційні проблеми
10:29 - 1. Проблема неконсистентності даних
13:09 - 2. Проблема застарілості даних
15:31 - Топова цитата про багатопоточність в Java
17:09 - Як запустити код в новому потоці?
19:23 - Як перевірити стан потоку?
21:25 - Проблема неконсистентності (Приклад коду)
24:35 - Чому volatile не вирішує проблему неконсистентності?
25:47 - Що таке synchronized?
27:30 - Основні "примітиви" багатопоточності в Java
30:01 - Що має знати Java-розробник?
31:38 - Як заблокувати потік?
34:59 - Що таке "Deadlock"?
39:23 - Як управляти потоком вручну? (wait, notify)
42:03 - Коротко про Concurrency Util
44:47 - Приклади з Executors
46:45 - Fork/Join framework
47:36 - 🔥 Багатопоточне Сортування Злиттям (Merge Sort)
54:12 - Реалізовуємо метод merge
56:28 - Найцікавіше про Fork/Join framework
58:09 - Як створити свій Fork/Join pool?
01:00:25 - Чому важливо знати про спільний Fork/Join pool?
01:02:27 - Заключне слово
#opensource #java #education

Пікірлер: 22
@Bobocode
@Bobocode 2 жыл бұрын
👉 Навчання від Bobocode: bit.ly/3IRrJhj
@user-lx8rv4ij1t
@user-lx8rv4ij1t Жыл бұрын
Дякую! Хай квітне український KZfaq.
@vladyslavh3940
@vladyslavh3940 Жыл бұрын
Дякую за лексію, корисно!
@Bobocode
@Bobocode 2 жыл бұрын
ДЗ: 1. Реалізувати багатопоточне Сортування Злиттям (Merge Sort) використовуючи Fork/Join фреймворк. 2. Порівняти час виконання звичайного і багатопоточного сортування на великому обʼємі даних (200_000+). Удачі! 💪
@goodvin8554
@goodvin8554 Жыл бұрын
Перевірив в мене меньш ніж 10 млн елементів сортує швидше в одному потоці. Заміряв, 1 виклик .fork() займає чомусь аж 1мс, не розумію чого так довго якщо потокі вже по суті створені. Виходить що дуже дрібні задачі паралелити нема сенсу.
@user-nq4bt9lm2d
@user-nq4bt9lm2d Жыл бұрын
Хто хоче краще розібратись в темі, рекомендую книгу Герберт Шілд "Java, повний посібник". Там є розділ який цьому присвячений. Описані основні класи, методи та приклади використання.
@ggazila
@ggazila 2 жыл бұрын
Крута лекція!
@eugenekukhol7552
@eugenekukhol7552 Жыл бұрын
Дякую за чудовий плейлист) пс: M1 Pro різниця в 3 рази з commonPool (4390 ms i 12908 ms) массив 100М інтів
@User-vr6if
@User-vr6if 2 жыл бұрын
Тарас, крутий урок! Ти реально вмієш гарно пояснити
@Bobocode
@Bobocode 2 жыл бұрын
Дякую! ☺️
@FillLemon
@FillLemon Жыл бұрын
Чи є якісь ресурси де є задачі по багатопотоковості, на кшталт leetcode?
@FillLemon
@FillLemon Жыл бұрын
В кінці уроку було, але може вже є щось таке)
@Bobocode
@Bobocode Жыл бұрын
Я не зустрічав :)
@baibula
@baibula Жыл бұрын
Є, але вони не дуже прикольні. Типу codegym/javarush, там є задачі на це.))) Правда Fork/join там точно немає. Все-таки на відео сказано правильно, що найкраще відкрити самому IDE і там придумувати самому.))
@caffeinejavacode1475
@caffeinejavacode1475 Жыл бұрын
чи можна досягти паралельності роботи потоків та консистентності даних одночасно? наприклад 2 потоки працювали над одними даними паралельно а потім результат смерджили якось ) якщо у нас 10 потоків та використовувати synchronized то це послідовна обробка данних у різних потоках яка різниця якщо 9ть чекають навіщо тоді 10 потоків якщо 1-дин потік також послідовно все обробив би. Був один мейн потік та один створений додатково
@Bobocode
@Bobocode Жыл бұрын
Можна :)
@caffeinejavacode1475
@caffeinejavacode1475 Жыл бұрын
@@Bobocode змінив чи можна досягти на як можна досягти?
@Bobocode
@Bobocode Жыл бұрын
@@caffeinejavacode1475 залежно від того, яку задачу ви хочете виконати. У відео, під яким ви пишете коментар є приклад паралельності роботи потоків при сортуванні масиву з викоританням Fork/Join.
@bizkvit1985
@bizkvit1985 2 жыл бұрын
А чому це відео не у плейлісті "Ultimate Enterprise Java"?
@Bobocode
@Bobocode 2 жыл бұрын
Довго пояснювати. Вже там 🙂
@bmtt2886
@bmtt2886 2 жыл бұрын
Ой шо сказати , всьо про всьо і ні про що, розмовляйте однією мовою.
@Bobocode
@Bobocode 2 жыл бұрын
Буду радий подивитися, коли зробите більш повноцінний урок по багатопоточності.
Can You Draw The PERFECT Circle?
00:57
Stokes Twins
Рет қаралды 64 МЛН
Не пей газировку у мамы в машине
00:28
Даша Боровик
Рет қаралды 8 МЛН
Зу-зу Күлпәш.Курс (6 бөлім)
40:48
ASTANATV Movie
Рет қаралды 506 М.
Balloon Pop Racing Is INTENSE!!!
01:00
A4
Рет қаралды 16 МЛН
Повний огляд Spring Data JPA 🤘
1:23:06
Bobocode
Рет қаралды 4,7 М.
Java. Multithreading. Wait and Notify methods. Blocking Queue and Worker Thread.
8:12
Sergey Arkhipov Java Tutorials
Рет қаралды 16 М.
Can You Draw The PERFECT Circle?
00:57
Stokes Twins
Рет қаралды 64 МЛН