background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Java. Урок 6. Многопоточность. Часть 2"

input logo icon
Теги видео
|

Теги видео

html
css
javascript
php
npm
nodejs
c++
c#
python
web-development
develop
git
svn
java
es6
ssh
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
разобрались с родами
00:00:04
разобрались с лаками называюсь другие
00:00:07
ориентант лак да еще делает чувствовала
00:00:11
синхронить и buldeo
00:00:13
и вот такую учительскую штуку как
00:00:18
collection синхронно сетлист тоже мы
00:00:20
вроде как на свой физический
00:00:23
централизации
00:00:24
сверх коллекции да точно было второе
00:00:27
действие все его методы оборачивает
00:00:30
синхро найдет то есть на все его методы
00:00:33
будет проложен мьютекс которая не будет
00:00:35
давать вызывать эту лавы или 100 более
00:00:38
одного метода в один момент что что нам
00:00:41
гарантирует что это arraylist при могу
00:00:44
поточном доступе будет нормально
00:00:47
адекватно работать с неумытого ютятся
00:00:48
данные но за выставим будет работать
00:00:50
медленно что конечно печально так ну и
00:00:52
собственно развивай эту мысль можно
00:00:54
сказать что у этих самых блокировок как
00:00:57
способ защиты данных есть несколько
00:00:59
недостатков как вы можете заметить да
00:01:01
один из помните домогаешься еще класс
00:01:04
вектор и вот изменили на arraylist
00:01:06
потому что то у виктор уже была встроена
00:01:08
что по 70 хранить долго о чем мы решили
00:01:14
отказаться да то что медленнее потому
00:01:18
что все вот эти сохранить от вызвано
00:01:20
требуют некой затраты ресурс это четыре
00:01:23
дня соткать их будьте во второй
00:01:26
недостаток ну что действительно мы тем самым
00:01:28
убиваем параллельность топить то есть
00:01:32
если у нас если мы много чего за собой в
00:01:36
блок синхронность значит мы что-то
00:01:39
теряем все преимущества того чтобы тот
00:01:41
мог бы страница параллель поэтому
00:01:43
злоупотреблять инфра носить тоже не
00:01:45
стоит ну и другой еще очень такой важный
00:01:49
недостаток то что все эти мьютекс и
00:01:52
прочей буксировки могут и не совсем
00:01:56
правильное использование могут привести
00:01:58
к так называемым did локу то бишь
00:02:00
взаимном блокировку значит самый такой
00:02:02
классический пример взаимные блокировки
00:02:04
это у нас чтобы
00:02:07
да тогда у нас есть ресурс то а ресурс b
00:02:15
и собственно и сам потоку одному и
00:02:22
второму нужно получить их оба
00:02:25
только тогда они смогут работать вот
00:02:31
соответственно первый поток получает
00:02:33
первый ресурс встала под apache 2 ресурс
00:02:38
дальше один хочет его хочет получить
00:02:41
того ресурс 2 хочет выучить 1 но
00:02:43
поскольку первым уже заводил с первый
00:02:47
поток во втором уже завладев тот поток
00:02:48
кто садится никто из них дальше не
00:02:50
продвинется никогда и в общем на этом
00:02:52
программа зависает и вот ничего больше
00:02:55
сделать мне чудилось но смирятся с этим
00:02:59
не очень хочется ну на самом деле
00:03:01
вагантов не так уж много классическим
00:03:06
решением этой проблемы считается что
00:03:08
никогда не делайте так чтобы у вас ваши
00:03:10
потоки получали выйти ровки в разных
00:03:13
порядках всегда делайте что они получали
00:03:15
в одинаковом порядке вот или делаете
00:03:20
будь уловку захват ресурсов а тамара
00:03:25
если помню у нас в эстель была такая
00:03:28
фича си плюс плюс анджелес а потом только
00:03:31
фичи нету поэтому валентный ленты еще
00:03:34
больше сокращает но на самом деле этот
00:03:37
меня весьма надуманный до такой
00:03:41
посмотришь посмотришь есть у меня объект
00:03:43
а весь объект б ну какой дурак будет
00:03:45
писать доступ сначала
00:03:47
потом b1 потапа 2 bk да согласна насчет
00:03:52
очень рискует надуманный пример
00:03:54
я уж не тоже всегда казалось что это ну
00:04:00
да ну то есть ну казалось бы вас есть а
00:04:02
и б ну там один ресурс давай весов но
00:04:07
что то как может учиться к ситуации что
00:04:09
не получается в обратном порядке поздно
00:04:11
поверхность требовал был хороший пример
00:04:13
чем-то с виктором
00:04:18
но я не знаю я просто тут он тоже же
00:04:21
кому-то рассказывал примерно из жизни
00:04:22
вот сейчас я вам покажу то есть я долго
00:04:26
думал что для того чтобы сделать такие
00:04:29
блоки нужно мы просто зашли вовсе не
00:04:33
думать о том что вы делаете то есть это
00:04:35
точно постараться но как показала жизнь
00:04:38
самая казалось бы невинный код может
00:04:41
приводить тот бог значит что я такая у
00:04:44
нас есть класс браузер значит класс
00:04:50
браузер может быть у вас паспорт мне
00:04:57
нравится хочешь это потеть и да я
00:05:07
предыдущий перекинутого пакет потому что
00:05:10
был конфликт имя защитить класс браузеру есть класс
00:05:14
страничка
00:05:19
бриджит такое нормально что в осло
00:05:22
набрался-то несколько страничек до
00:05:24
соответственно в правда есть коллекция
00:05:26
этих страничек
00:05:28
да ну там какой-нибудь new
00:05:33
да че там такое
00:05:35
каждая страничка хранит у себя ссылку на
00:05:38
браузер и у нее соответствующие
00:05:42
конструктор значит браузера
00:05:47
соответственно есть функция открыть
00:05:50
страницу на котором в котором создается
00:05:54
новая страничка эта страничка
00:05:57
добавляется наш список
00:06:07
и такая же функция закрыть страничку нет
00:06:12
еще давайте лучше страничку будет у
00:06:15
страничке логично и правда открытие
00:06:26
можете закрыть это может закрыться
00:06:28
готовится не открыться ну как значит
00:06:38
него столько это страничка создает
00:06:40
браузер то есть она забрала то чтобы
00:06:44
ударить себя
00:06:45
нет да нет да считайте дайте даже
00:06:50
сделаем метод для для удаления страничке
00:06:52
списка специального случай вот ну и
00:06:57
соответственно эта страничка будет
00:06:59
закрываться и удалить себя из браузера 5
00:07:03
давайте помоем ничего криминального не
00:07:08
вижу неврозов тоже можно закрывать в
00:07:10
принципе чем вы нет ну просто
00:07:16
пользовательского избраться уже можешь
00:07:17
падение стоящей за кого-то может весь
00:07:19
браузер закрыт может же правда ну и
00:07:22
отсюда будем вызывать плеч .
00:07:26
close даже учета говорит ну и можно же
00:07:33
вот так там больше нравится мне чего не
00:07:35
челка именно они уже нет правда принципе
00:07:38
логично я программа есть браузер есть
00:07:41
странички штанишки к войти в браузере
00:07:45
закрываются удаляется из браузера pounds
00:07:48
of korra закрывается сам удаляет все
00:07:50
странички также можем сайта кучу вся моя
00:07:54
для этого
00:07:58
создать папку на паузе а вскоре цикле
00:08:03
там будем открывать страничке
00:08:07
нет открываем страничке но потом
00:08:15
затравой а эти странички из весь-весь
00:08:18
паруса нормально там схема работы
00:08:22
парсера пальцами открыл закрыл поработал
00:08:24
а теперь вы вдруг захотели сделать нашу
00:08:28
программу многопоточной так может вам
00:08:32
такой дворец ну да ну что вы помните
00:08:38
фронтом году станешь к отдельным процесс
00:08:40
но отдельный посудить не можем но земли
00:08:42
поток моль потом а там как-то
00:08:44
обрабатывает там вот создаем новый трек
00:08:47
это туалет там будет что то делать ну
00:08:52
там как какие-то действия там причем
00:08:54
происходит ну и в конце эта страничка
00:08:56
закрывается в шубы не мне же ничего q
00:09:01
это вас удивительно вообще эта страничка
00:09:02
закрывается но и вот мы тут смотрим
00:09:05
думаем то есть у нас открывается не в
00:09:08
отдельном потоке закрывать другом потоке
00:09:10
то есть нашему этому самому не браузеру
00:09:14
но грубо говоря тут может возникнуть
00:09:16
губки так ведь там с открытием закрытием
00:09:19
так далее так далее ну давайте мы
00:09:22
сделаем тут еще синхронизирован не
00:09:26
париться
00:09:29
но это в цикле а токмо не пользователь
00:09:33
будет не в цикле это обрабатывать сказку
00:09:34
дорогу мы же хотим полностью защититься
00:09:42
все-все синхронизировали все прекрасно
00:09:46
такая страничка впринципе тоже никто не
00:09:50
то что может какие-то еще методы тоже на
00:09:52
там может быть не совсем подержанного
00:09:54
поточность ну чтобы и там два раза не
00:09:56
закрывать параллельно он может позже они
00:09:58
делать ничего в принципе должно все
00:10:02
работать правда ничего такого
00:10:04
криминального десне написали правда
00:10:06
давайте запустим посмотрим что получится
00:10:11
ничего не пишет поэтому тот не час не
00:10:14
увидим ну давайте будем открывать
00:10:16
страничке
00:10:27
ну очень такой заметили до финиша наша
00:10:31
программа не дошла то есть если вы
00:10:33
хотели после этой программы делать еще
00:10:35
что-то полезное
00:10:36
то извините дальше программа работать не
00:10:39
будет понятно то есть она открыла 9
00:10:46
страниц потом вышел и их начать закрывать и
00:10:49
благополучно повесила
00:10:54
потом но вы видите на 9 открыла то есть
00:11:06
цикл этот выполнился и видимо где то не
00:11:08
так выбрался в клаус она повисла чё
00:11:11
делать
00:11:29
все чаще как бы неплохо платим странице
00:11:33
могильники какие-то вот-вот несут почему
00:11:36
так перестанете да мы их перри
00:11:39
синхронизировать то есть как вы можете
00:11:41
заметить несмотря на то что мы вот и все
00:11:44
делали достаточно логично получается что
00:11:47
у нас браузер до может функции клаус
00:11:51
вызвать эту самую пейдж коуз то есть
00:11:55
браузер с баузером связан не титры лоб
00:11:57
такой поэтому то-то вызывает браузер
00:12:01
holes он берет захватывает ног связаны с
00:12:05
браузером и потом захватывает лоб связан
00:12:07
с каждой странице но как вы понимаете
00:12:10
каждая страница в своем методе клаус
00:12:13
вызывает метод move bitch который а
00:12:16
который захватывает лоб браузер то есть
00:12:19
есть ли кто-то вызовет метод по пейдж
00:12:22
клаус до того как захватить лом браузера
00:12:26
например вот в этом случае происходит
00:12:28
именно это так ведь тогда получим эту
00:12:31
самую ситуацию которая здесь нарисовал
00:12:33
хотя казалось в общем то мы ничего
00:12:35
криминального не делаем у нас два локона
00:12:37
основанных абстракции 1 уровне
00:12:40
абстракции браузер обработан они
00:12:42
абсолютно отдельной странице вот и все
00:12:44
то есть мы выписались вершину логичную
00:12:47
правильную программу создания
00:12:49
понятна идея разделить точат узнает что
00:12:56
лучше делать но возможно где можно
00:12:58
просто ты где-то убрать она из этом
00:13:01
вопросе хранить здесь потому что мы же
00:13:02
знаем что этот класс здесь доведет
00:13:04
страница с пассивными закрывать до либо
00:13:08
там как сделать страницы пассивными либо
00:13:12
сделать нет голос охрана zippo сделайте
00:13:15
сначала типа захват типа браузера внутри
00:13:20
этой ветке не делать рано в общем есть
00:13:23
много разных вариантов что где именно
00:13:25
город синтра дезир иногда это работает
00:13:28
это не работает иногда вам нужно делать
00:13:31
это пляски с бубнами сам статорным
00:13:33
нарушением инкапсуляции
00:13:34
и прочих прочих радостей вот сейчас мы
00:13:38
то наведите же
00:13:39
завершается пока нет но короче говоря
00:13:42
записать этот не так уж и сложно
00:13:44
вообще этот пример у меня в общем то из
00:13:47
жизни я по-моему его столом кофту это
00:13:50
рассказывал этот баг я столкнулся с ним
00:13:53
в этом сервере под названием джетте
00:13:56
такой довольно попсово java узкий
00:13:58
веб-сервер они там сессиями так работает
00:14:00
там был менеджер си си си си так
00:14:02
закрывались и вот сессии чтобы закрыться
00:14:05
получают лоб менеджер s7 я начал чтобы
00:14:08
закрыть сессию получает в бок в цессии и
00:14:10
в итоге получилась вот эта самая система
00:14:13
но проблема в том что эти два локон
00:14:15
охотиться не рядом как вы можете
00:14:17
предположить они находятся на разных
00:14:18
уровнях абстракций и в этом случае
00:14:21
получается косят то есть в итоге эти
00:14:24
блоки по сути дела но большую популяцию
00:14:29
понятный день что ну уж примеч .
00:14:39
не совсем понять почему старого мира
00:14:42
сего помните файлы уже там открываем
00:14:45
сама в этом самом почему бы и нет
00:14:52
почему же она может не хорошо страница
00:14:54
не должна
00:14:55
о том что лежит выше некоторые не знают
00:15:04
хоть и даже разговаривают с ним страница
00:15:08
может быть интерактивные элементы нет о
00:15:10
странице можно лишь ну чтобы спать уже в
00:15:13
этом двигатель на странице она открывает
00:15:15
вам новую страницу это может открыть нам
00:15:16
останется не зная браузера они же
00:15:19
браузер должен просить от весовой
00:15:20
спросить ну это конечно получится у нас
00:15:23
связано с братом что нас на это браузере
00:15:25
очень я непосредственно нет то сигнал
00:15:35
стоп . вы посылаете кому-то суть в том
00:15:38
что пультов у вас не спасло даже если вот
00:15:41
этим браузером стивен этого интерфейсы
00:15:44
75 лет и сигнал slappa
00:15:45
все равно было бы то же самое то есть
00:15:48
представьте себе что вы здесь что вот
00:15:51
эту чтобы пишите не здесь опишите этапу
00:15:53
типа он клаус browser games
00:15:55
если это синхронить и ты позови мухсин
00:15:57
хранить такой на другой получил вот его
00:15:59
брат напоят нет у вас все равно все
00:16:00
повесит суть в том что локи по сути
00:16:03
делалось инкапсуляции тужит плохо то
00:16:06
есть сами локи может быть нормально но
00:16:09
программа которая их активно используют
00:16:12
случае даже при вполне себе нормальная
00:16:14
консультации могут виснуть
00:16:16
непредсказуемо самое страшное что здесь
00:16:19
у вас программа на так как написано что
00:16:21
нависнет практически гарантированно вот
00:16:24
но на самом-то деле если бы эти thread'ы
00:16:28
здесь не мгновенно запускается здесь бы
00:16:31
кормит on time out разного размера кто
00:16:34
возможно этот баран заполз успел бы
00:16:36
выполняться до того как начнет
00:16:38
запускаться этот пакет beach club
00:16:42
это приводило бы к тому что до что
00:16:47
работает работает работает там в течение
00:16:49
всего вашего там тестированию
00:16:51
тестировщику все работает а когда в этом
00:16:53
за дикую миллиона пользователей а там в
00:16:57
10 процентах случаев и здесь не все вот
00:17:00
у нас тут мне собственном бюджете будет
00:17:02
тот же косяк что у меня серая работает
00:17:04
работает работает работ
00:17:05
работает работает но там раз в две
00:17:08
недели весь нет просто намертво то есть
00:17:12
он даже не умирает а просто павиана
00:17:14
предстоит отвечать на любые запросы не
00:17:16
только киля и и в общем вот такой косяк
00:17:20
поэтому с этими блоками нужно быть очень
00:17:23
осторожными и быть как еду чё делать вот
00:17:28
этот стандартный совет о том что брать
00:17:30
их в комп типа в том порядке типа всегда
00:17:32
брать только в определенном порядке но
00:17:34
он работает так то есть он фактически
00:17:37
конечно всегда работает но практически
00:17:39
всегда непонятно какого запустить так
00:17:44
мучила с луком разобрались мне очень
00:17:45
очень нравится пример по моему такой
00:17:47
очень жизненно и классно описывает
00:17:49
только кто как это бывает так что если
00:17:53
вы думаете что синхронность it was
00:17:55
всегда всего спасет это неправда в
00:17:57
отдельных случаях сохраняется вас к раз
00:18:00
наоборот допьет доконает то неизменяемый
00:18:07
браузер там она дает там как каждое
00:18:13
движение мышки должна создавать вам
00:18:15
новый компьютер да я согласен это это
00:18:18
это решает проблему но понимаете в общем
00:18:21
не злоупотребляйте centro лезет внизу
00:18:23
между подавляйте лаками вообще лучше
00:18:25
писать программы так чтобы все лодки
00:18:27
были но не у вас то есть например
00:18:31
используя там эти синхрон азии в
00:18:32
коллекции или если мы сейчас доберемся
00:18:35
до других коллекций так лучше понятно по
00:18:38
log off и ли вам еще при
00:18:40
обедающих философов рассказать
00:18:45
я думаю все в курсе победа еще у вас нет
00:18:51
ну а нам расскажете товарищем
00:18:53
прорывающихся остров случае чего я вас
00:18:56
это же такая не очень интересная тема но
00:18:58
наверное на пони рассказать это монитор
00:19:00
то что вам кому-то что-то рассказывал
00:19:03
тоже довольно бестолковая
00:19:06
штука но говоря в теме помыл поточность
00:19:09
по них нельзя не рассказать короче если
00:19:12
вы обратили внимание то если вы создаете
00:19:15
объекте по обжиг или создаете объект
00:19:19
каком-то больше нравится кто него есть
00:19:22
довольно забавные методы ну и туз
00:19:25
понятно get close понятно хэш-код я
00:19:27
думаю тоже понятно поэтому даже делают
00:19:30
хэш-код да чё там втб и слушали вот есть
00:19:35
метод tostring и это всё ты виноват а
00:19:37
вот есть еще пятеро методов как бы не
00:19:42
совсем понятно чу делающий дано тифа и
00:19:45
notify all white white & wave
00:19:47
вот собственно после чего они были друг
00:19:50
друга короче говоря если у вас есть
00:19:52
какой-то объект
00:19:54
какой-то объект прототипа по
00:19:58
и вы смогли сделать какой-то блок
00:20:02
синхронной вид по этому объекту по
00:20:04
здесь делать по . weight то это означает
00:20:09
что как только поток дойдет до этой
00:20:12
команды он уснет будет ждать бесконечное
00:20:18
время и ждать он будет до тех пор пока
00:20:21
какой-то другой поток
00:20:23
не вызовет у этого для этого объекта о
00:20:27
метод найти файл то есть это типа
00:20:31
мы потоки привязаны к конкретному
00:20:33
объекту можем либо усыпить либо
00:20:37
соответственно потом поставил ок они уже
00:20:39
спят их пробудить методами tefal
00:20:55
там одессе место как slip
00:20:58
но теоретически можно но вообще-то выйти
00:21:01
сделан не для этого это сделан именно
00:21:03
для того чтобы а или когда мне тут
00:21:07
специально медленно или постараться
00:21:11
но мы там вписали с вами мьютекс был
00:21:14
когда-то вот но на самом деле для mix
00:21:19
эту штуку выносливостью
00:21:21
вот там действительно была подобная
00:21:24
задача но в этом не тиффани и не совсем
00:21:28
сгодятся потому что вы не искать не
00:21:31
годятся для описания луков потому что
00:21:33
они сами требует заработал окон то есть
00:21:39
вы это на ti fa re
00:21:40
могут работать только внутри топовый
00:21:42
толок здесь пожалуй то есть для того
00:21:47
чтобы вызвать метод виталина тифа и в
00:21:49
поток должен владеть
00:21:51
лаком на этот объект понятнее день на
00:21:56
самом деле так посмотришь на господень
00:22:00
чуть не придумают но если ждет луком
00:22:06
плакать это другая если он если у нас
00:22:08
ожидать то он освобождает то есть кто то
00:22:11
он вошел в индонезии ты стал weight так
00:22:13
как бы туда блок освободился нет ждет а
00:22:21
потом еще и блокируется когда дождался
00:22:23
ну он скажем так расплатилась только
00:22:27
тогда каталог будет освобожден
00:22:30
уведомляет должна освободить носа до то
00:22:32
есть как только уведомляет углы что так
00:22:34
wake up все кто ждали уведомление вы его
00:22:38
дождались но я ещё немножко пока
00:22:40
поработаю а потом а дальше тебе делайте
00:22:42
что хотите вода все наши файлы seafight
00:22:46
ток 1 а вот вообще я тоже с некоторым
00:22:52
недоумением отношусь ко всей этой штуки
00:22:55
потому что тщательно
00:22:57
здесь у жизни ни разу не пригодился
00:23:00
использовать но не не пригодилось ее
00:23:03
использовать потому что есть куча
00:23:05
стандартных класа в стандартных бесите
00:23:08
которые уже используют эту вещь и не
00:23:10
требует того чтобы вы во всем этом
00:23:13
разбирается но раз уж мы говорим про все
00:23:15
эти примитивы синхронизации то обойти
00:23:17
вниманием эту штуку на самом деле она же
00:23:24
самое это попсовое использование так
00:23:26
называемая задача поставщике потребителя
00:23:29
я тоже по моему можно там кому-то
00:23:31
рассказывал но задача поставщики и
00:23:34
потребители является таким краеугольным
00:23:37
камнем всех информационных систем в том
00:23:41
числе распределенных поэтому не
00:23:44
поговорить по нему нельзя значит
00:23:47
собственно в чем стоит задача что есть
00:23:49
эти классы сос вот значит там хранится
00:23:55
какой-то ресурс но летачки не то чтобы
00:24:01
храниться может храниться вот этот
00:24:05
ресурс него можно положить можно забрать
00:24:09
так куда от него эти такой топчик до
00:24:21
из качестве нехорошо называть его
00:24:25
имуществе на башне в общем-то ничего
00:24:33
просто примечательно в этом классе нет
00:24:34
кроме одного нюанса о том как он на
00:24:37
самом деле должны работать если у нас
00:24:39
несколько потоков и один поток является
00:24:46
поставщиком то есть он кладет эти
00:24:48
ресурсы этого потребителя то значит
00:24:51
поток который с поставщиком поскольку он
00:24:54
положил ресурс не может положить
00:24:56
следующий ресурс он должен ждать пока
00:24:58
его не заберет потребитель а потребитель
00:25:02
соответственно если он забрал иисус и
00:25:05
хочет забрать следующий а ресурса нет
00:25:08
должен ждать пока этот курс не появится
00:25:11
понятно и вот задача
00:25:16
потом способного обобщается на очереди
00:25:18
является на самом деле классической для
00:25:23
для построения информационных систем
00:25:25
поэтому все разбираться собственно как
00:25:28
вы понимаете вот этот механизм ну можно
00:25:30
сказать его произвола предназначение это
00:25:32
как раз таки решить эту самую задачу ну
00:25:36
чё давайте рассказывать вот знаю эту
00:25:38
классную штуку чего дерется не
00:25:41
отсутствие adsense у сайта на да то есть
00:25:45
о лицензировании ну а тот кто есть если
00:25:51
я его забрал смотрит если
00:25:55
если объект не равен null ждать то есть
00:26:02
это кто то есть iv
00:26:09
лис .
00:26:11
о . ну так че вам дело до чем-то вышли
00:26:24
сверх начинать синхронизировать а тут
00:26:28
можно то есть пульс должен хранить из а
00:26:36
пол чего должен делать то же самое
00:26:40
только только если равно да кстати
00:26:44
должен потом еще обнулить осушал что он
00:26:46
забрал поэтому надо все сделать по
00:26:49
хорошему вот так вот так то есть чем
00:26:56
дело если искусстве уровня
00:27:10
чего должен уступать перед тем как
00:27:24
собрать так и чуть-чуть чего-чего
00:27:29
подхватит уж должен вызвать и файл здесь
00:27:36
затемнить файл этих файлов определяете
00:27:45
кто-то он заберет и здесь поставку так
00:27:54
он уже привязан к да то есть вы
00:27:56
понимаете да вы здесь писали о .
00:27:59
здесь мы пишем просто потому что они для
00:28:01
нас 1 отзыв не писали на чем должна а
00:28:09
вот попробуем запустить большого
00:28:18
ее подсчетам кого чистой воде вроде так
00:28:21
все несложно
00:28:22
можно не знаем можно сделать вместо
00:28:25
общего какой-нибудь мужу мужу было
00:28:28
конечно святых создал что там все
00:28:30
обернулось
00:28:31
такой чтобы понял вы удобства нет попова
00:28:36
синтаксис в две трети ресурсов столько
00:28:40
хотя нет но это не совсем все-таки то
00:28:44
так ну давайте рот на нашем сердце
00:28:48
а вот у нас первый трек
00:28:57
цикл
00:28:59
цикл
00:29:03
ну да c па-па-па-па поклажа
00:29:08
заду собственно сам туда и класть чё на
00:29:19
интерес можем живи к пласти 108 работает
00:29:29
дойдя до и боюсь что у нас тут ничего
00:29:34
ничего умеем и сделать не можем чем
00:29:38
такой чтобы начать что не так но
00:29:47
исключение до исключения немножко
00:29:49
вывешивать но пишите на какой-нибудь там
00:29:52
скалки в нем не и в ней нет этих
00:29:54
исключений будут подобного просто
00:29:56
выписать чтобы выбраться до заключения
00:29:58
куда все а нельзя сказать потока что
00:30:00
выбрасывать исключение если это
00:30:02
если это checked exceptions to он должен
00:30:04
всех их отловить мы передадим ему с
00:30:14
какими-то домра но он не может у вас
00:30:17
исключение все чеки так секс он должен
00:30:18
вот и себя поймать и обработать так тем
00:30:22
или иным способ скопипастил t2
00:30:30
который будет свою очередь делать
00:30:35
наоборот значит тоже
00:30:36
и сделаем не пускай будет платным пускай
00:30:41
будет сюда просто присвоить иит и вы
00:30:46
варите
00:30:53
человек питал но так так важно бой вот
00:30:59
соответственно
00:31:02
отчет как-то непонятно кушать понял что
00:31:07
может он предстанет просто немножко
00:31:10
замедляет
00:31:16
как-то не понять то есть конечно можно
00:31:20
сослаться на то хотя нет давайте
00:31:22
подумала что очень запушил этот данного
00:31:30
и были вытащены то что интересно но
00:31:36
важнее выбрать записывать им на детки и
00:31:39
это не эдак стойкой влаги
00:31:41
то есть записанных степа здесь
00:31:44
собственно вытаскивается мида видимо это
00:31:50
этого мы так point алан должен положить
00:31:56
автоматически не рассчитывает и стороны
00:32:00
кстати может быть вы
00:32:03
центр разработки она может вывод владели
00:32:06
поток пишут и потом их странного лозами
00:32:09
jets
00:32:10
ну ладно принципе да вот ничего не
00:32:12
потеряли поэтому наверное будем верится
00:32:15
шведов все правильно работает у нас тут
00:32:17
есть правда несколько интересных мыслей
00:32:19
да например а если мы будем кушать из
00:32:21
двух потоков сохранить его надо чтобы
00:32:27
но посмотрите что такая история вот
00:32:30
допустим первый поток зашел push значит
00:32:35
вот он да то есть значит вы фото что
00:32:40
зашел ресурсы нет значит он вышел ждать
00:32:43
мьютекс освободил второй поток зашел
00:32:46
ресурсы нет ну ты способна boden он
00:32:50
зашел опять начал ждать ну давайте пока
00:32:57
пока пока давай обойдемся потом ваще-то
00:32:59
поток потребитель зашел значит ресурс
00:33:04
dali sub съесть часов съесть пошел
00:33:08
пробудил оба потока меню пошли значит
00:33:13
они оба пошли так ведь им же гарнет слов
00:33:19
начатым вернулся лог но они оба они оба
00:33:22
проснулись до под долго проснулись
00:33:25
акт вернуться на перо сто к одному а
00:33:27
сейчас что он забрал это их свойство 2
00:33:29
это тоже проснулся
00:33:30
данного проснулся и не сталкеру
00:33:33
нет блок освободился он проснулся но он
00:33:36
заплатит не а почему спать а потому что
00:33:39
другое захватил лоб и не особо пята он
00:33:42
освободил уже то есть мнение него
00:33:45
смотреть нигде нет они весят с этого
00:33:47
момента просыпаются
00:33:48
просыпает потоки одному из них вернутся
00:33:53
log off и log вернется
00:33:57
одному из них но напрасно вопрос они оба
00:34:01
проснется значит первый не будет
00:34:03
заблокирована другой будет один за
00:34:06
другим 2 даже
00:34:08
да да да но по то есть а посуда да ты
00:34:12
сам они уже миновали в они уже миновали
00:34:15
в эти поэтому в того и тоже проснулся и
00:34:18
он тоже будет думать что теперь все
00:34:20
может и он пик запишет вот этот объект о
00:34:23
который записал пела поняли эту фишку то
00:34:28
есть чтобы это косяк то есть получается
00:34:33
что когда у вас если пушек будем из двух
00:34:36
потоков то короче все сломается на самом
00:34:40
деле solution и очень простое решение
00:34:43
это королева
00:34:44
чего мне вместо iv написать воров но
00:34:51
аналогично поднимаетесь та же самая
00:34:52
ситуация
00:34:56
то есть да есть есть у вас было там два
00:34:58
потока которые забирают они
00:35:01
соответственно бы так работой было
00:35:04
птарса на проблема поэтому если вас
00:35:06
notify all the скорее всего здесь точно
00:35:08
должен быть файл
00:35:09
скорее всего точно 11 это дата можно
00:35:17
делать iv но как правило всякий случай
00:35:19
хочешь писать найти файл вот то есть это
00:35:22
если будете есть никто-то все еще тоже
00:35:33
такой хитрый момент они вроде не может
00:35:37
так случиться что два раза вызовется
00:35:40
найти файл из методов пол хотя все может
00:35:43
быть если у вас несколько потоков взяли
00:35:46
один допустим пробудился не вот то
00:35:49
получится что наш поток который надевает
00:35:52
по сути того что насчет а положил
00:35:54
пробуждает заодно и потоки которые ждут
00:35:57
того чтобы что-то положить запись
00:35:59
понятна идея
00:36:01
дефарж действует на все потоки которые и
00:36:03
здесь же тут и которые здесь ждут
00:36:06
сохраняя держать народ
00:36:08
рот нет в принципе часто будет работать
00:36:13
то есть если мы здесь написать файл и то
00:36:15
все это гарантия будет работать это
00:36:17
вполне себе рабочая модель которая будет
00:36:19
работать в количество потоков но до
00:36:21
нужно нужно понимать что мисси файл
00:36:25
будет и те потоки которые не кладут и все
00:36:28
потоки которые вот поэтому вас как бы
00:36:30
такой кондишен 1 а вообще говоря в
00:36:33
принципе если мы будем использовать не
00:36:36
выпьете фай
00:36:37
совершенно аналогичные методы класса
00:36:41
rain трандла то у него соответственно
00:36:45
можно сделать
00:36:50
но и твой лоб поможем new кондишен
00:36:54
создать процесс на нем candychan
00:36:58
это аналог вот этого вы это но который
00:37:02
работает не синхронизатор который
00:37:04
работает классный тренд бог и можем
00:37:06
сделать candychan типо типо весов пушит
00:37:09
пушит это один candychan
00:37:14
интересно способна функция сопки не
00:37:22
нужно кушать и сервис на поле до места
00:37:28
сохранить это мы здесь будем делать наш
00:37:30
этот блок блок
00:37:36
потом будем делать блок unlock
00:37:41
разумеется все мы это можем сделать что
00:37:44
eveline или ну да я вас предупреждал jaf
00:37:47
к она такая
00:38:01
вот и теперь вместо white мы можем
00:38:05
говорить не просто выйти а вы пока
00:38:07
конкретного кондишен а да значит не
00:38:11
равно нулю значит он ждет пока не палит
00:38:17
поле а ведь это соответственно ждет пока
00:38:25
не кушать запись кушать а в эти ждет
00:38:30
пока не пушит этот с нами тифа it то
00:38:33
есть положил и соответственно всем
00:38:36
сообщил что типа пушат сигналу
00:38:42
а этот соответственно
00:38:46
забрал и теперь сообщает всем что
00:38:50
полетать и файл то есть мы поедали этой
00:38:55
штуки такую семантику событий за мной
00:39:03
следит она внимательно то есть мы по
00:39:06
нашим этим монитором предали вот эту
00:39:10
семантику событий то есть у нас есть лоб
00:39:12
и связанные с ним такие события то есть
00:39:16
объект то есть этот до ждал жду события
00:39:20
что положили что забрали джу событий что
00:39:26
забрали в коду сообщая всем о том что
00:39:29
положу
00:39:30
жду события пока положим забрал
00:39:34
сообщаю всем что забрал новый по моему
00:39:38
зато то хочет довольно красиво и
00:39:41
прикольно читается понятна идея на самом
00:39:45
деле конечно в общем то тогда штука
00:39:47
которая используется довольно часто и
00:39:49
что самое важное что она может
00:39:52
использоваться именно когда поставщиков
00:39:55
и потребителей много то есть например
00:39:56
если у вас там создание этого ресурса
00:39:59
своих будь то в польшу большого
00:40:01
количества времени то вы можете
00:40:02
создавать там много-много то потоков
00:40:05
которого производят а забирать там одни
00:40:07
и это сбалансировать количество потоков
00:40:09
тем самым
00:40:11
ну соответственно оптимизируя работы
00:40:13
программы разумеется ручками писать вот
00:40:16
это вам уже это правило не нужно и в
00:40:19
стандартной гасите java есть такая штука
00:40:22
как blocking you
00:40:26
самый так вот простейший случай ботинку
00:40:29
это так называемый синхрон не успею это
00:40:34
блокирующие очень большая фирма и да да
00:40:37
да это очень кричащие то есть импонирует
00:40:39
вот почему сейчас написали то есть
00:40:41
очередь в которой не может быть
00:40:44
элементов точнее то есть вы как не банят
00:40:47
очередь на часов неси но не успели
00:40:49
писать сегодняшнюю от карающего очередь
00:40:50
никакого элементы когда она не хранить
00:40:53
состоянии мужчина писали очередь из
00:40:55
одного элемента и так далее
00:40:59
соответственно могут быть разновидности
00:41:02
это очереди в котором могут хранить себе
00:41:03
некоторое количество элементов
00:41:04
соответственно если очередь заполнено то
00:41:07
положить в неё дополнительно элементы
00:41:09
станет нельзя
00:41:10
то пусть будет заплатила вот есть и
00:41:13
соответственно оно не заполнено то можно
00:41:16
будет пусть пока она не заполнится пол
00:41:17
будет вам из это очереди запирать
00:41:19
элемента по мере
00:41:20
star таким образом вас получается тоже
00:41:22
сама платеж вас некоторые буферизации и
00:41:24
вот эти блокирующий не блокирующий
00:41:26
очереди очень часто используются в этом
00:41:28
же самом смысл вот эта концепция я уже
00:41:32
много раз говорил она очень хорошо
00:41:35
ложится не только на программа
00:41:37
работающие на потоке а вообще очень
00:41:41
хорошо ложится на распределенные системы
00:41:43
когда у вас там один компьютер поставщик
00:41:46
и 10 там компьютеров потребителей и вот
00:41:49
таким образом у вас все так вы читаете
00:41:51
отдыхать какой-то за счет ваша позиция
00:41:54
по поводу дал какие из этих языков
00:41:56
изучение я
00:42:00
с одной стороны можно то есть с одной
00:42:02
стороны именно такой об основные позиции
00:42:06
на всю ценность не баловать фоне жизнь
00:42:09
чем специально в итоге что мы имеем
00:42:12
вокруг но вместо плюсом моя позиция в
00:42:15
том что
00:42:17
профильных студентов то есть тех у кого
00:42:21
программирование это кафе учитель сам
00:42:25
так хорошо потому что плюс мира такой до
00:42:32
и после уже ничего не страшно ошибочно
00:42:36
считает цвет вы вот те кто ошибочность
00:42:39
этой себя профиль не да они будут очень
00:42:40
сильно страдать от этого у вас поэтому я
00:42:43
и так получается что студенты который
00:42:47
непрофильные несколько отчисляется
00:42:49
быстро садится еще многое тело сочи
00:42:55
да не так уж не только по в целом в этом
00:42:57
смельчак вам выполняется на нее панов
00:43:00
иногда я собственно давно одессе лучше
00:43:02
давайте там не профильным ким такой там
00:43:03
питон подсчитаем очень такое
00:43:05
всех нет нет только пусть и только
00:43:08
хорошо большой косяк обучения некой на
00:43:16
литературу не нашел так вот взять
00:43:18
сказать вот на себе книжка по питона на
00:43:22
видео вот как то вот все таки как то не
00:43:32
для школ там типа бетона для сисадминов
00:43:40
как бетон для тех чудным после всего я
00:43:45
просто анализов поселят бетонных работ
00:43:52
используется вот сколько также языком
00:43:56
питон попсой
00:43:58
чем руби его дала час руби на самом деле
00:44:01
много и снаружи папа пару-тройку лет
00:44:07
назад руби была до очень модно все там
00:44:09
писали свои стартапа наруби сейчас уже
00:44:11
можно руб сошла api том как тон довольно
00:44:13
такое стабильно неравномерно я честно
00:44:16
говоря питон так вообще обращение по никам
00:44:20
языка для скриптов так и есть это хорош
00:44:23
таких-то математических пакетов у него
00:44:25
куча всяких привязок к там этим могли бы
00:44:28
там сказкой python на рубине все-таки и
00:44:32
дополняются время использования световая
00:44:35
они не получит его нет у вас гипсовая из
00:44:38
цветов нет ничего смысл их до суда по
00:44:41
что у нас во фразы нестинга скрипт что я
00:44:45
видел достаточно совпадать по это не но
00:44:47
так честная бедность тебя вижу его
00:44:49
применении допинга на таких
00:44:51
вспомогательных скриптах место ваш
00:44:53
но нет это не много интересного пишет в
00:44:57
этот мой любимый как клиент мир кулона
00:45:01
там написано питоне делать пиццу на
00:45:06
питание себя за счет написаны питание
00:45:10
дефектах игре написано на питоне это тот
00:45:13
их отделяет от с хобби для нет ног очень
00:45:18
интересно ты не можешь писать там там
00:45:23
там пьют хорошо используется у него есть
00:45:25
хорошо да хороший билдинги пьют и у него
00:45:28
есть там но почему хороший бентин
00:45:29
собственно бит баффет на питоне написан
00:45:32
сам до многого яндексе а я тоже знаю
00:45:35
потом активно использует в углу там
00:45:36
всяких на нем пишут там кем-то на
00:45:40
серверах него есть неплохой vip-file
00:45:43
это джамбо так когда уже долго можно
00:45:45
использовать вместо птп его можно
00:45:48
сказать вместо php активно него там
00:45:50
несет выезжая которые что он там пол как
00:45:53
отдельно серого можно спрос котенка
00:45:55
счету гораздо помощи попутно смысле
00:45:57
датчиком слова и потащила сервера кс
00:46:00
будет интерпретируемый язык и только
00:46:02
ты-то услуг по сути не создавать процесс
00:46:06
нет совершенно необязательно чтобы
00:46:10
делалось использую потому что они фунтов
00:46:12
описать скорость особо ты не важно
00:46:14
потому что вот
00:46:18
по разному бывает все эти сети сайте
00:46:21
идея
00:46:22
хорошо писать на 100 визга потому что
00:46:24
очень быстро можно их обновлять их даже
00:46:26
компилировать вы зашли псс hop
00:46:28
правильное сходни чат и все у вас
00:46:30
заработало как надо а если вы там пишете
00:46:33
даже тоже джая вам нужно собрать
00:46:38
протестировать проверить контрольные
00:46:41
сумеете
00:46:44
нет они собственно в такой техпроцесс вы
00:46:47
должны собрать новые приложения там
00:46:50
положим пройти тест и после этого то
00:46:55
есть там все серьезно и свою задницу
00:46:59
дает требует продолжения банкета
00:47:03
так значит звуками очередями и прочими
00:47:07
радостями разобрались вот а теперь
00:47:09
собственно как нам уже павшего сними
00:47:10
калия курсе всех трейдов и по очень
00:47:13
радости есть важный аспект чем там сами
00:47:16
делали искали максимальный элемент чем
00:47:19
уже не заполнила
00:47:20
вот собственно здесь запускали отдельные
00:47:23
trailer да все может да за запуск
00:47:27
отдельного thread'а это в общем так
00:47:30
супса емкая задач то есть когда мы пишем
00:47:32
new thread
00:47:33
мы начинаем с винды разговаривать с
00:47:35
нашей операционной системой
00:47:37
она выделяет какие-то стыке какие-то там
00:47:40
тур на хранение всех этих регистров
00:47:42
вообще вообще сильно напрягается
00:47:44
поэтому создание отдельных треков это в
00:47:47
общем-то не очень правильная штука
00:47:53
понятно эти вот и на самом деле если мы
00:47:57
хотим
00:47:59
обрабатывать большое количество данных
00:48:01
сделать это параллельно в нескольких
00:48:03
потоков
00:48:04
то хорошо использовать такую штуку как
00:48:06
три тпу то есть чтобы все понимают
00:48:10
совокупность да будет бассейн но
00:48:16
программирование здесь такой посмотрели
00:48:19
шаблон проектирование под названием
00:48:20
обжиг тпу
00:48:21
если какие-то объекты вам долго
00:48:24
создавать их вам нужно не очень много но
00:48:27
используются они будут из разных мест вы
00:48:29
создаете себе эти объекты
00:48:31
и потом просто кому нужно по требованию
00:48:34
их выдается вот та же самая история с этими
00:48:39
strobel то есть у нас там может быть так
00:48:42
значит есть у нас пул ждем хранится
00:48:49
потоки они провела там это потоки должны
00:48:53
всегда у нас что то делать но как вы
00:48:55
знаете потоки могут спать вот они там
00:48:57
спят прошу потоки и а мы хотим выполнить
00:49:03
какую-нибудь задачу но тут меру только
00:49:04
что наступали задачи да там посчитать
00:49:06
дед максимальный лимит
00:49:08
был дело входят задача хочу посчитать
00:49:11
max + радостно говорим пул пул выделим
00:49:17
не поток который будет считать макс
00:49:19
собственно выделяет считать макс и поток
00:49:21
начинает читать этот макс
00:49:24
посчитал посчитал посчитал посчитал
00:49:26
вернулся в пу продолжу дальше спать
00:49:29
поехали это значит один важный аспект
00:49:33
отдал бы важный аспект этих пулов
00:49:37
собственно да у вас был 1 of 2
00:49:39
а на самом деле то у нас может быть же
00:49:41
много всяких этих списков так ведь вас
00:49:44
же может быть список списков может быть
00:49:45
список список этих списков может быть
00:49:47
вообще не известная на этапе компиляции
00:49:49
количество так ведь есть такое джаве
00:49:56
действительно не все удобно записывать
00:49:59
но опять же по рекламирую вам скалу на
00:50:02
скале удобно записывать там можно делать
00:50:05
всех их симаков и там везде
00:50:06
автоматически вывод типов радиус
00:50:10
энтропию снова ногу вниз диск вот у вас
00:50:17
много этих поток много этих списков
00:50:19
можно там числе добавить списков короче
00:50:23
но вы много много списках
00:50:26
там вот как 70 46
00:50:32
вот такое и вот у всех этих списков мы
00:50:35
хотим посчитать максимальный элемент
00:50:36
помните да у вас было еще проблема как
00:50:39
нам собственно это результат вернут для
00:50:42
была такая история то есть то встретит
00:50:45
там и чет запускали чит здесь считая но
00:50:47
мы же хотим себе результат получить от
00:50:51
пол как вы можете заметить в как раз
00:50:52
предназначена для решение таких задач
00:50:54
он не предназначен для того чтобы
00:50:55
долго-долго учет обсчитывать а он
00:50:59
предназначен для того чтобы дали ему
00:51:00
задачу а вы об считал и соответственно потом
00:51:04
продолжу спать ждать других задач
00:51:06
соответственно к смене к то есть вы
00:51:10
имеете то что мы не контролировали
00:51:12
дамы не контролем жизненный цикл потоком
00:51:15
и там ничего не ждем вы просто даем ему
00:51:17
конкретная задача их выполняет и у дать
00:51:19
нам результат значит создать официальный
00:51:23
пул можно использовать кластера тпу
00:51:27
компьютер-сервис какие-то сервисы
00:51:39
вот рад показать youtube а потом
00:51:41
взорваться
00:51:44
стоит его можно создать довольно сложным
00:51:48
путем него там количество потоков
00:51:51
изначальное количество токах
00:51:52
максимальная там время пока этот поток
00:51:55
создает кстати вот этот blocking юристы
00:51:57
в этом винить include на 1 пользоваться
00:51:59
это очередь все задачи которые будут
00:52:02
отмечаться если вам лень все это
00:52:05
прописывать хотя на самом деле если вы
00:52:08
хотите тонкой настройки то скорее всего
00:52:10
не придется использовать
00:52:11
есть куча так называемого фабричных
00:52:13
методов толчков обычно это все знают
00:52:20
и методы возвращается и даст специальный
00:52:26
класс экзекутор у него есть куча
00:52:28
статических методов которые создадут вам
00:52:32
ну например если вы хотите то пусть
00:52:35
какого-то конкретного количество потоков
00:52:36
он пишет юта все просто не значит и
00:52:38
поток можете сделать да и где-то on time
00:52:49
ago любой процессор то есть сделать из
00:52:52
такого количества трейдов сколько у вас
00:52:55
я дело процессора но не знаю я почему-то
00:52:58
не люблю делать вот пускай будет 406 у
00:53:03
нас таких всех бесед королёва 7 на
00:53:05
компьютер вот у вас есть четыре потока
00:53:06
этим четырем потока мы можем раздавать
00:53:08
задач вот умело мы хотим раздать им
00:53:11
задачи посчитать ну вот вот этот
00:53:16
максимум дату чем это делали татьяна
00:53:19
теперь ты не нужны митяй берем
00:53:22
перебираем до
00:53:28
элементы нашего 10 ст бегом наш этот
00:53:31
сервис и тут у него есть кучу кучу этих
00:53:34
методов которые позволяют нам запустить
00:53:36
ту или иную задачу
00:53:40
вот самый такой правильный метод это
00:53:43
метод сабмит
00:53:45
вот вы мне вы передаете вот этот самый
00:53:47
рада был про она была уже знаком
00:53:50
так и он вам you тут же начнет выполнять
00:53:53
в каком-то из этих треков ну если этих
00:53:58
ли она бы вы туда засунули слишком много
00:54:01
то соответственно он их поставит в эту
00:54:03
очередь по аналогии того что вот мы там
00:54:06
только что обсуждали на тему поставщиков
00:54:10
и потребителей понятно процент то есть
00:54:13
это как раз один из примеров когда
00:54:15
используется вот этот поставщик по 30 то
00:54:17
есть если и потоки не успевают выполнять
00:54:19
ваши задачи они будут образуют вот эту
00:54:21
самую очередь понятна идея значит кроме
00:54:26
runnable кроме радовал которая вроде как
00:54:30
нам мы привыкли есть тобой интересно
00:54:32
этап лезть под названием collapse
00:54:34
по сути дела это тот же самый раны был
00:54:36
но он может возвращать значение
00:54:40
понятно то есть интерфейс около был есть
00:54:44
метод кол вот собственно есть миль от
00:54:50
кол-ва в отличие от грановского ран он
00:54:52
возвращает значение типа в
00:54:53
то есть мы можем сказать это можете
00:54:56
штуки давай выполняем команду ну как
00:55:02
обычно вот можно использовать варианты
00:55:04
выражения как вы уже догадываетесь
00:55:05
на часто была команда обсчитать
00:55:08
максимальный лимит
00:55:09
да вот ну вот могут используем этот
00:55:15
пускай будет aladdin собственно вот вот
00:55:18
мы запустили запустили запустили
00:55:21
собственно клапан позволяет нам получить
00:55:24
результат значит в принципе мы можем
00:55:27
получить результаты работы вот этой
00:55:29
штуки такой вопрос только в каком виде
00:55:32
мы можем получить
00:55:33
то есть когда понятное дело что
00:55:36
результат будет не сразу как только мы
00:55:39
выполним этот саммит топить поскольку
00:55:41
вот этот код который будет исполняться в
00:55:43
отдельном потоке будет исполняться там
00:55:46
какое-то время топить а результат нас
00:55:49
можем получить только тогда когда вам
00:55:50
исполнится
00:55:52
тем не менее мы хотим иметь возможность
00:55:54
оперировать этим результатом и для этого
00:55:58
был придуман специальный класс под
00:56:00
названием фьюче пол я тоже кому-то по
00:56:03
это рассказывала значит что такое
00:56:07
фьючерс и
00:56:08
знаете на этой на рынках вас же у вас не
00:56:12
было ни принцу кого-то было фьючерс
00:56:20
металлом ярославское шоссе
00:56:22
станьте станьте но короче говоря это
00:56:25
когда там на бирже кому-то что-то нужно
00:56:29
там поставить там нефть и когда-нибудь в
00:56:31
будущем вот они заключают контракты на
00:56:33
поставку какого-нибудь то вонзился в
00:56:35
будущем вот где католита и кафе и часа
00:56:39
вот тоже самое здесь вот фьючер это
00:56:41
такой контракт о том что то где то в
00:56:43
будущем вам поставят целое число которая
00:56:48
будет результатом поиск максимального
00:56:50
элемента ли что то есть это как бы такой
00:56:52
контейнер который когда-то в будущем
00:56:54
будет хранить это самое значение а че
00:56:57
тут у нас когда это будущее она стоит но
00:57:00
стоит говоря мы не можем точно сказать
00:57:02
когда он восстанет но если мы хотим его
00:57:04
получить результат тот есть специальная
00:57:06
функция под названием дед одну из
00:57:09
функций там издан который позволяет
00:57:11
проверять на периодически не доставлять
00:57:13
славное будущее но если мы хотим его
00:57:15
таки до станции есть функция get которая
00:57:17
заблокирует наш текущий поток пока это
00:57:19
будущее не настанет по сути делать
00:57:22
аналог join a joint только для трат
00:57:25
пулов понятно написать здесь просто дед
00:57:30
вы понимаете будет довольно глупо почему
00:57:34
потому что это делает вас следует
00:57:36
да все понимают что это все сломает но
00:57:39
зато мы можем сделать другую красивую
00:57:42
штуку мы можем сделать список фьючерсов
00:57:45
список этих самых фьючер of и эти вечера
00:57:53
в него туда класть
00:57:58
вот мы там параллельно запустили все это
00:58:01
прекрасно начала работать а теперь
00:58:03
наверное мы можем вообще удалить или все
00:58:06
нам не нужна так теперь мы берем весит
00:58:09
наш список компьютеров и
00:58:14
последовательных дожидаемся
00:58:16
данном случае все шапку sensixx а то
00:58:20
есть ну и тут мы можем оплатить
00:58:21
наполняюсь понятна идея да дед будет
00:58:27
извращать интеджер
00:58:28
так такая программа будет параллельно
00:58:30
работали там случае мы получим
00:58:32
преимущество многопоточность она будет
00:58:36
работать параллельно но с некоторыми
00:58:39
пресекаем что будет много терять время
00:58:46
парят
00:58:48
еще вот порядка получение зачем почему
00:58:51
бы не терять время порядка получение
00:58:53
значит что скажем мы хотим получить
00:58:55
первое значение от первых вечера в это
00:59:01
время уже вы чувство 10 9 8
00:59:03
это блокируется и блокируется приз на
00:59:06
вашем порядок это очевидно нужно него
00:59:10
нет но если нам нужен они все во все об
00:59:13
этом вы должны показаться всех тоже
00:59:15
какая разница в compared него будет
00:59:17
ожидать за каждого отдельно сразу
00:59:20
выводить и провались куда-нибудь еще
00:59:22
дальше выводить согласно хорошее
00:59:24
замечание но общем вот как то так
00:59:26
кстати говоря я вообще всех нравится
00:59:29
если хочу получить вот и тут у меня был
00:59:31
список этих листов тут я получил список
00:59:34
этих самых фьючер of тут я тебя хочу
00:59:36
получить не не выводить их на экран хочу
00:59:39
получить список результатов
00:59:41
чё делать такой
00:59:45
вот список не фьючер этот список
00:59:49
собственное всех end of the street
00:59:52
да мы же можем сделать через три кстати
00:59:54
тележек убит апти он умеет
00:59:58
видимо в стримах сам спине умеет делать
01:00:01
так можем застывает конвертировать
01:00:04
музыку можно импортировать
01:00:08
давайте с этого начнем как это будет
01:00:10
рубить но теоретически медленнее на все
01:00:24
наплевать но не факт что компилятор это
01:00:30
не оптимизирована той степени что будет
01:00:32
одна и та же будет 5 строительстве
01:00:34
многих срастись языку необходимо
01:00:37
предоставить языком надо понимать что
01:00:38
кроме компилятора jalas тоже есть еще
01:00:41
это jit компилятор который там все эти
01:00:43
лишние классы когда он понимает что они
01:00:45
лишнего учитывает так как обычно надежда
01:00:48
на то что где-то ни одна действительно
01:00:51
блок оптимизирует факт не просто надежда
01:00:55
мужчин просто слов чего ситуация
01:00:58
заставила память о чем у нас хочет .
01:01:05
китай
01:01:08
печатает на сцене с этим там или этом
01:01:13
слове стамеска построить этапы ему
01:01:16
списка возвращают
01:01:20
но в 8 10 коллектор то этого я думаю нет
01:01:23
это что то возвращать культя released
01:01:25
или кого нет там чуть на остальные существа
01:01:29
люблю jal
01:01:32
ну вот к вопросу о том насколько все это
01:01:34
на самом деле
01:01:37
скорти такого нет но тут мы тоже можем
01:01:40
немножко все упростить жизнь хотя вот
01:01:43
кстати здесь на момент вот трой течь но
01:01:46
нам до выражение в любом случае должна
01:01:48
что-то вернуть чо делать чего не как
01:01:52
моим ученикам чуть даже но короче есть
01:02:05
такой радикальный способ борьбы с этими
01:02:08
штуками the opera di fronte максимально
01:02:18
закрыть рекут он же чувствуешь просто
01:02:26
монтаж нельзя потому что его выражение
01:02:32
вот у него такая сигнатура что вы не
01:02:35
должны выбрасывать exception поэтому вы
01:02:37
не можете весь пакет обернуть его в
01:02:39
области только вот конкретно этого
01:02:40
поражения на общем поэтому
01:02:42
функциональное программирование на джаве
01:02:45
но доставляет некоторым более страдания
01:02:51
ну счастье оно тоже доставляет но торгов
01:02:55
сочетание сделали нет но на хаскеле она
01:03:03
не доставляет под нет хаски доставляет
01:03:09
просвещение и озарение и вообще
01:03:14
приближает вас к ней
01:03:20
но я не дождь я узнаю я там я читал и
01:03:25
даже пытался угодить
01:03:27
вот ничего серьезного я на нем не понял
01:03:30
так ладно это сделали сделали тут можем
01:03:34
этот цикл тоже можем заменить на такую
01:03:36
штуку кстати говоря этот цикл даже сама
01:03:41
изменить такую штуку персиковом молодец
01:03:44
ну почти он сделал почти точно надо было
01:03:49
но это не совсем монада так это находите
01:03:55
там конец вот место палыча мы хотели
01:03:59
сделать этот самый турист не собственно
01:04:04
даже вот так вот столько говоря эту
01:04:07
штуку тоже можно сказать что нам не
01:04:08
особо нужно отопить
01:04:09
этот промежуточный список мы можем
01:04:13
заменить в принципе топить а максимума с
01:04:21
него пара цветнику эксепшен томас где-то
01:04:23
вопрос ну и как вы можете заметить в
01:04:26
общем то вы получите где их стримов
01:04:27
получили довольно да почему ужасно не
01:04:32
если его хорошенько расстояние
01:04:33
хорошенько вот пересмотра и печень
01:04:37
вопросы лучше ли это вот 20 нет ну в
01:05:01
общем мы сделали голову штуку дома
01:05:03
сделали все говорят и себя сюда у бабы
01:05:05
collect сделал тоже самое
01:05:13
я потерял нить и что там от чего-то или
01:05:17
смысле а в чем проблема то я что-то этой
01:05:19
коллекции а мои промежуточный список
01:05:22
фильтров допрыгать точно не нужно тоже
01:05:30
не нужно убежать от проблем все согласны
01:05:34
что они не нужен проникнут в состоянии
01:05:41
так что чем запад еще непонятно чего
01:05:44
непонятно в этой штуке но до этого был
01:05:50
список мы взяли этот список и за мебели
01:05:54
при помощи стрима в ручкой которая
01:05:57
собственно запустили в экзекьютора
01:06:01
процесс вычисления максимального из
01:06:03
каждого из этих списков
01:06:04
так дальше вот мы его здесь получили
01:06:09
здесь мы получили список этих фьючерсов
01:06:12
и дальше стримим этот список фильтров в
01:06:15
сами значения путем ожидания
01:06:18
вычисление каждого значения то есть их
01:06:26
можно было сюда
01:06:29
но тут есть один нюанс полностью я вам
01:06:32
сказала давайте мы здесь меркам напишем
01:06:34
get после саммита сразу напишем get вами
01:06:38
сказали не мы не будем этого делать
01:06:40
потому что убьется вся параллельность
01:06:42
запись
01:06:45
почему нет городов for a вы же понимаете
01:06:51
6 лет он не вас нет у вас в том случае
01:06:56
не просто немножко 2-ую к чертям убивает
01:06:59
параллельно страна скажем так он мешает
01:07:03
скорейшем использование значения но не в
01:07:09
случае с мишуткой скорейшем и справа
01:07:11
значения когда мы выписали в пост сразу
01:07:13
после саммита вам два параллельно
01:07:15
данном случае получается что мы его тоже
01:07:17
пишем сразу после сабмит возить внимание
01:07:20
мэп ленивый соответственно он не будет
01:07:23
выполнять сначала сад нет всех элементов
01:07:26
а потом дед всех элементов выполнится
01:07:28
admit а потом дед каждого элемента
01:07:30
поэтому вот без этой штуки убьется вся
01:07:33
параллельность понятный и вообще вот так
01:07:37
вот работают эти самые этот сервис и
01:07:41
но все это можно значительно упростить и
01:07:44
сделать гораздо более нежно сделал все
01:07:47
гораздо проще использовать the rails 3
01:07:58
собственно собственно собственно сопит
01:08:01
нам уже не нужен ни чего не нужно
01:08:05
нанесена вообще неважно кто тогда вы
01:08:12
тогда мы использовали это тоже теперь ты
01:08:21
может который что у процесса нет ну
01:08:29
собственно телец
01:08:36
без тебя мы сделали все то же самое но
01:08:38
только вот за счет провел стрим вот да
01:08:42
там внутри есть некий специальный пул по
01:08:45
готовы видим уже поддаемся обещалось вот
01:08:47
который запускает всю эту штуку теперь
01:08:49
все работает параллельно
01:08:50
все это потом фьючер ами где-то там
01:08:53
собираются самим и них даже не думает
01:08:56
вот все это собралось все запустилось
01:08:57
такой код уже лучше выглядит вот так
01:09:02
работает
01:09:03
parallels 3 все вот этим и как будут
01:09:05
запущены в отдельном как 110 одетого
01:09:12
получить получать получать значение
01:09:17
говорят нет нет нет отчисления пока
01:09:30
никто на балет сюда и порядок который мы
01:09:33
туда согните ли порядок которым они
01:09:36
вычислили установить не вино а
01:09:38
стандартным рыскали по мимо так не
01:09:40
делать но если мы хотим получить
01:09:43
максимальный из максимальных нам не
01:09:45
обязательно нам неважно как в порядок да
01:09:49
если позвонит максимально то вы можете
01:09:51
там сделать гидиус это и тогда будет так
01:09:54
как вы хотите но видимо мы сейчас уже
01:09:58
брать поговорить не успеем а потом по и
01:10:01
даже в пятницу субботу на слабо уложила
01:10:05
уже 2 лапа суббота
01:10:06
а ну вот голова страны занимаемся мой
01:10:09
java и зачем рационально
01:10:11
программирования практически
01:10:13
тогда но он не легче ли просто вообще-то
01:10:16
сейчас мы изучаем скорее уже на основе
01:10:19
потоков какие такие базовые концепции
01:10:20
которые используются при построении
01:10:23
распределенных вычислений
01:10:24
то есть потому что сейчас мы это вас не
01:10:26
распределенные вычисления нам
01:10:27
распределена почти тоже самое
01:10:29
map дальше будет радиус views
01:10:34
такое стандартное решение вдвое и прошли
01:10:37
специальную по гамме они но она уже
01:10:39
вошло планируется
01:10:41
курсов не следующему пенсионных я не
01:10:43
знаю у меня есть учебном плане которые
01:10:46
специально вписал на 4-м курсе курс по
01:10:48
современной парадигмы то гомера но у
01:10:51
меня не было времени лифчик тоже сказал
01:10:53
тебе меня не буду я все это читать а
01:10:55
также хотел сказать про всякие там манги
01:10:57
и получили интересные штуки
01:11:05
где того того что но нет он таки
01:11:12
действительно очень современен какого-то
01:11:14
samsung galaxy вот так вот дата может
01:11:18
миллиона вода попала детьми шер каюту
01:11:21
становится последние 60 лет
01:11:27
чтобы

Описание:

01:46 - Deadlock 18:52 - Мониторы wait-notify 41:50 - Перерыв и разговоры про Python 47:03 - Пулы потоков 01:07:37 - parallelStream Подписывайтесь на канал SplinCodeWD: ★★★★★★★★★★★★★★★★★★★★★★★ На моем канале вы можете найти видеоуроки по C/C++/HTML/CSS/JS/PHP, аудиоподкасты и разборы статей с хабра, и многое другое. Подписывайтесь, вместе мы сможем преодолеть трудности. ★★★★★★★★★★★★★★★★★★★★★★★ Подпишись: https://www.youtube.com/c/splincodewd Материалы по видеоурокам тут: ★★★★★★★★★★★★★★★★★★★★★★★ Ссылка: https://github.com/splincode/basework Если хотите поддержать проект: ★★★★★★★★★★★★★★★★★★★★★★★ Проект SplinCodeWD: http://splincode.github.io/course/ Я вконтакте: https://vk.me/splincode Паблик: https://new.vk.com/splincode_public Мое портфолио: https://splincode.github.io/ Безлимитный хостинг: https://hostliga.ru/ Твиттер: https://twitter.com/splincodewd Пожертвование: https://money.yandex.ru/to/410011651364842

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Java. Урок 6. Многопоточность. Часть 2"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Java. Урок 6. Многопоточность. Часть 2" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Java. Урок 6. Многопоточность. Часть 2"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Java. Урок 6. Многопоточность. Часть 2" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Java. Урок 6. Многопоточность. Часть 2"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Java. Урок 6. Многопоточность. Часть 2"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.