Разбираем на примере, как работает ключевое слово synchronized в Java. Исходники: github.com/Arhiser/java_tutor... Поддержать канал💰: yoomoney.ru/to/410018856244871 #ArhiTutorialsJava #ityoutubersru
Пікірлер: 40
@Dermidont3333 ай бұрын
Автор и его канал - находка. Как же все доходчиво. Спасибо.
@IIEPEDO34 жыл бұрын
Мне очень нравится такой формат: короткие видео с большим количеством информации, без запинок и лишних слов!
@AutismSpectrumMsk8 ай бұрын
Замечательное видео! Самое понятное из всех просмотренных по теме. Спасибо большое
@Kami9112 жыл бұрын
Очень приятное изложение материала. Кратко и по сути. Спасибо!
@prosto_komputer4 жыл бұрын
👍*Хорошее примечание*, "если все обернуть в синхронайзд, то смысл многопоточности пропадает". Благодарю за примеры.
@RedkeiGost3 жыл бұрын
Все видео сидел и думал "а смысл тогда в разных потоках?", чтобы в конце услышать, что да, его нет, если обернуть прям все-все.
@mihailegorin23493 ай бұрын
Крутое видео)
@d.mertsalov5 жыл бұрын
Действительно, многопоточность очень важная тема, где легко можно ошибиться. Спасибо!
@aRobert4 жыл бұрын
Спасибо, простое и понятное ознакомление!
@user-fd3pr1sp4z3 жыл бұрын
Сказал всё, что нужно. Максимально быстро и понятно. 5+
@SvetlanaCapri Жыл бұрын
Спасибо.У Вас понятные примеры.
@yehorlevchenko35404 жыл бұрын
Спасибо, именно в этом видео я получил ответы на свои вопросы
@DevPlayGame2 жыл бұрын
Благодарю, это то что было нужно мне.
@Andrzej39352 жыл бұрын
Спасибо вам огромное!
@locky1827 Жыл бұрын
Спасибо. Отличное обьяснение.
@user-my1by4tq7d3 жыл бұрын
Очень приятно и просто
@linuxhooligans20024 жыл бұрын
Мужик респект и уважуха!
@simplechannel78594 жыл бұрын
Жаль что второй раз подписаться нельзя))))
@SemyakSD7 ай бұрын
просто гений, спасибо
@Krasnolesye2 жыл бұрын
Спасибо. с монитором - уже что-то прояснилось
@vass81803 жыл бұрын
вопрос. если синхронайз по this/ какой обьект лочится? ведь у каждого потока будет свой this и потоки должны одновременно выполнятся?
@arhitutorials3 жыл бұрын
Синхронайзд используется для синхронизации доступа к какому-то объекту из нескольких потоков. То есть этот объект один для всех потоков, и если внутри его методов есть синхронайзд на this то этот this для всех потоков одинаковый.
@vass81803 жыл бұрын
@@arhitutorials если поток заходит в синхронизированный метод (this) какой обьект находится в этом this?/какой обьект лочится?
@arhitutorials3 жыл бұрын
@@vass8180 если нет подходящего общего объекта для синхронизации можно его создать. Если вызвать синхронайзд метод на объекте, то лочится этот объект.
@jekasol86442 жыл бұрын
Доброго времени суток!Подскажите, заинтересовал такой вопрос, ответ на который я так и не нашел. java поддерживает многопоточность(имея ввиду пакет java.util.concurrent). Но правильно ли я понимаю что это вид многопоточности с разделением времени, все созданные потоки выполняются в рамках одного процесса и одним ядром процессора. Т.е. когда мы создаем и запускаем подпотоки то все они выполняются "псевдопараллельно", процессор просто перемещается между этими потоками? Но как я понимаю никакой поддержки многопроцессорных систем(многоядерных), здесь нет? Так же, в java есть fork/join framework - в котором, насколько я понял , как раз осуществляется реальное многопоточное(многоядерное) программирование. Если есть возможность, поясните! Спасибо!
@arhitutorials2 жыл бұрын
Потоки в Java - это надстройка над потоками операционной системы. Они работают параллельно и занимают все свободные ядра. fork/join framework предназначен для случаев, когда задачи порождают дочерние задачи. Причем задач много и выполняются они быстро. В этом случае на обычном пуле их выполнять невыгодно, потому что потоки все время будут ломиться в очередь, чтоб добавить туда свои задачи, и большую часть времени будут простаивать в заблокированном состоянии, ожидая доступа к очереди, вместо того, чтоб заниматься работой.
@jekasol86442 жыл бұрын
@@arhitutorials Спасибо за развернутый ответ!
@gulfstream18002 жыл бұрын
Если внутри метода run имеется 2 блока синхронизации на разных объектах, первый поток захватывает первый монитор, второй заходит в метод и блокируется, ожидания освобождения монитора, разве не так? (В видео говорится о том, что другой поток захватит монитор другого блока синхронизации)
@old-anekdoty4 жыл бұрын
Спасибо, но почему даже со стрингбуфером третья строка пустая иногда?
@arhitutorials4 жыл бұрын
Потому что стрингбуфер обеспечивает синхронизацию только внутри своих методов. Но там в Runnable его методы вызываются 3 раза. Между этими вызовами может вклинится другой поток и выполнить свой вызов. То есть, например, пустую строку записать. Тогда получится, к примеру, что на 3-й строке пустая строка, а на четвертой сразу 2 текста. Чтоб всегда было все одинаково нужен synchronized блок на все 3 вызова, тогда другой поток не сможет вмешаться.
@java_worm Жыл бұрын
круто, как же круто ты объясняешь, спасибо
@user-oi4dg9ry8p3 жыл бұрын
Чувак, ты топ, объясняешь как Алишев. Дал бы ты рекламу и сделал курс базовый на java, срубил бы бабла на ютабчике :D
@baltica_san60472 жыл бұрын
Вопрос. Зачем использовать synchronization в реальной жизни? Если задачи выполняются одна за другой, а не параллельно, разве это всё ещё является МНОГОпоточность? В чем преимущества?
@arhitutorials2 жыл бұрын
Синхронизация нужна только в тех местах, где есть какие-то ресурсы, к которым может обращаться одновременно несколько потоков. Например, если есть очередь задач, из которой потоки берут задачи и выполняют, то доступ к очереди должен быть синхронизирован, чтоб не было накладок типа того, что два потока одну задачу возьмут. А сами задачи уже можно выполнять параллельно. В общем, обычно синхронизацию используют по минимуму и только в необходимых местах.
@user-tz3bd3oe3i Жыл бұрын
Добрый вечер, я пока плохо в этом разбирась... Возник вопрос - как мы можем создать объект типа Runnable, ведь Runnable это интерфейс?
@arhitutorials Жыл бұрын
На самом деле создаётся класс без имени, наследующий Runnable, и тут же на месте создаётся экземпляр этого класса, по этому все нормально.
@user-tz3bd3oe3i Жыл бұрын
Спасибо большое за ответ
@Das.Kleine.Krokodil Жыл бұрын
создается анонимный класс
@altayski3704 Жыл бұрын
8 минут половина справочника Шилдта о многопоточности