ПОЛНАЯ ВЕРСИЯ ЭТОГО КУРСА: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776 ДЛЯ ЖИТЕЛЕЙ РФ: alfa.swiftbook.ru/courses/415 Плейлист с другими открытыми уроками: ruclips.net/p/PLAma_mKffTOTtGQEbqurDRoPwDEKzzZQA
Вы - лучший учитель по Java! Обучалась на другом ресурсе, но все равно постоянно обращалась к вашему каналу. Более понятных и доступных объеснений нигде еще не встречала. Это видео стало последней каплей - после долгих мучений в попытках понять эту тему, наткнулась на него, и в голове все сразу встало на свои места. Только что купила сразу два ваших курса: Продвинутая джава и Джава для начинающих, буду восполнять пробелы в знаниях. Спасибо, что вы есть! )
Друг! Спасибо тебе, почти прошел начальный курс, почувствовал себя получше с Java. В знак благодарности купил продвинутый на Udemy, и надеюсь пригодится и автору донат.
Повторил за автором, только в конструктор класа передал поле name , и вывод name + i. Если создать 3 и более потока, хорошо видна хаотичность работы. Если 2, то практически по очереди идёт выполнение, скорее всего зависит от машины на которой работает код.
Так все таки случайным образом или нет выделяется время на потоки? Потому что если случайным, можно из разницы во времени выполнения, можно генерировать не псевдорандомные, а по-настоящему рандомные числа. Не?
Попробовал написать код, как на видео, у меня Java не захотела его запускать ссылаясь на то, что пытаюсь в статичном методе(main) запустить метод нетстатичный метод. В итоге пришлось сделать классы, реализующие ранабл - статичными и все заработало.
Для наглядности создайте какое либо поле в классе MyThread и конструктор. При выполнении многопоточности будет видно какой поток раньше или позже выводится :)
Вопрос: вот мы переопределили метод run(), запуск потока будет начинаться с него, а поля самого класса, имплементирующегоRunnable будет игнорироваться, пока мв к нему не обратимся из метода run() ?
Хм... А кто мне ответит, почему если запустить myThread а затем цикл в main потоке, то сначала выполниться вложенный поток, а потом только продолжится main? public class MultyThread { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); for (int i = 0; i < 10000; i++) System.out.println("Hello from MainThread " + i); } } class MyThread extends Thread { public void run() { for (int i = 0; i < 10000; i++) { System.out.println("Hello from MyThread " + i); } } } cначала выводится 10000 из MyThread a потом только main эти потоки никак не параллельны?
Во-1: Никто не создаёт потоки ни одним из 2 способов, указанных в видео! Используется анонимный класс. Во-2: "Программа не завершится, пока не завершатся все потоки" не совсем верно, потоки-демоны не должны завершаться, они всегда в фоне работают.
Хоспадиии... Ну не увидишь ты никогда сообщение из потока MyThread раньше сообщения из main метода!!! Хоть сколько раз перезапускай. Ну ты же видишь, что не получается, ну подумай почему... У тебя в main одна комманда - вывод текста. В твоем потоке прежде чем вывести текст, выполняются 2 операции!!! Присвоение i = 0 и сравнение i < 1000. И лишь потом 3-я комманда - вывод текст. Потоки поочередно, как ты и сказал, забирают процессорное время, а значит не может твой поток выполнить 3 операции прежде, чем в main 1 выполнится - это не равноправно.
ПОЛНАЯ ВЕРСИЯ ЭТОГО КУРСА: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776
ДЛЯ ЖИТЕЛЕЙ РФ: alfa.swiftbook.ru/courses/415
Плейлист с другими открытыми уроками: ruclips.net/p/PLAma_mKffTOTtGQEbqurDRoPwDEKzzZQA
instaBlaster...
Четыре года прошло а твои курсы до сих пор приносят пользу. Спасибо, хорошо объясняешь.
+
Шесть лет прошло, и они все еще приносят пользу .. ))
Господи, как же ты замечательно всё объясняешь. Без всякой тягомотины. Спасибо тебе.
Вы - лучший учитель по Java! Обучалась на другом ресурсе, но все равно постоянно обращалась к вашему каналу. Более понятных и доступных объеснений нигде еще не встречала. Это видео стало последней каплей - после долгих мучений в попытках понять эту тему, наткнулась на него, и в голове все сразу встало на свои места. Только что купила сразу два ваших курса: Продвинутая джава и Джава для начинающих, буду восполнять пробелы в знаниях. Спасибо, что вы есть! )
Ну вот может ведь кто-то объяснить понятно! Лайк как обычно! Спасибо, что не бросаешь канал!
Самый лучший канал про джаву! Лучше всех объясняешь! Делай больше уроков! Можешь сделать уроки jfx css?
Спасибо. Я наконец-то понял как это работает, а не просто бездумно использовал! Подписка и палец!)
1000000 Лайков и подписка уже оформлена Лучший и этим все сказано. Не бросай канал у тебя супер талант
Круто!!! Спасибо, все понятно, без воды.
Спасибо! Круто объяснил все! Будет здорово если новые видео начнешь выпускать по Java))
Друг! Спасибо тебе, почти прошел начальный курс, почувствовал себя получше с Java.
В знак благодарности купил продвинутый на Udemy, и надеюсь пригодится и автору донат.
спасибо за пояснение, очень доходчиво!
Алишев, у тебя талант объяснять сложные вещи просто!!!
Очень доступно обьясняете материал, спасибо !! Ушла покупать полную версию курса на udemy))))
Классный урок!
Прекрасное объяснение
Повторил за автором, только в конструктор класа передал поле name , и вывод name + i. Если создать 3 и более потока, хорошо видна хаотичность работы. Если 2, то практически по очереди идёт выполнение, скорее всего зависит от машины на которой работает код.
Спасибо, учитель
чтобы закомментировать сразу несколько строк кода нужно нажать ctrl + / (для тех кто не знает как это сделать)
Либо ctrl + shift + / для многострочного коммента
объяви в конструкторе String переменную. и при интциализации потока в main методе передавай свой текст чтобы в принте их различать нормально.
Так все таки случайным образом или нет выделяется время на потоки? Потому что если случайным, можно из разницы во времени выполнения, можно генерировать не псевдорандомные, а по-настоящему рандомные числа. Не?
Спасибо
привет. А в чем все таки разница когда лучше использовать паралельность, а когда многопоточность?
Попробовал написать код, как на видео, у меня Java не захотела его запускать ссылаясь на то, что пытаюсь в статичном методе(main) запустить метод нетстатичный метод. В итоге пришлось сделать классы, реализующие ранабл - статичными и все заработало.
Для наглядности создайте какое либо поле в классе MyThread и конструктор. При выполнении многопоточности будет видно какой поток раньше или позже выводится :)
Вопрос: вот мы переопределили метод run(), запуск потока будет начинаться с него, а поля самого класса, имплементирующегоRunnable будет игнорироваться, пока мв к нему не обратимся из метода run() ?
Я первым делом поставил 10000 в цикл) и запустил на обоих потоках, как ты и сказал началась борьба)
19:46 смысле не как? а как же наследование от класса synchronized, или ты про то что она работает не паралельно, а последовательно?
можно контролировать потоки при помощи монитор
Куто спасибо за видео
спасибо огромное
почему у меня метод start() подсвечивает красным IDE???
Вроде поток main приоритетнее чем в данном случае поток thread 0. Но это только на Винде работает.
Всем доброго дня! Народ, подскажите, пжл, годные материалы для практических работ!
P.s я новичок
Спасибо!
Респект!
Спасибо!
А как сделать чтобы 3 разных текста повторялись поочередно бесконечное время с задержкой например в 1 минуту? То есть 1, 2, 3, 1, 2, 3, ......
А какие горячие сочетания клавиш вы использовали в видео для добавления throws и вызов переопереденных методов
ALT+ENTER
Хм... А кто мне ответит, почему если запустить myThread а затем цикл в main потоке, то сначала выполниться вложенный поток, а потом только продолжится main?
public class MultyThread {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
for (int i = 0; i < 10000; i++)
System.out.println("Hello from MainThread " + i);
}
}
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 10000; i++) {
System.out.println("Hello from MyThread " + i);
}
}
}
cначала выводится 10000 из MyThread a потом только main
эти потоки никак не параллельны?
Отвечаю сам себе, после перезагрузки ПК потоки стали выполняться одновременно, борясь за консоль, как и говорил сенсей)
👍 *Лайк* если пришел сюда из JavaRush!👍🎓
Подскажите пожалуйста, ваши курсы так же идут в форме видео объяснений?
да
alishev спасибо
best video
четко
минут 5 по-моему ушло на слова "потоки не синхронизированы" ))
Во-1: Никто не создаёт потоки ни одним из 2 способов, указанных в видео! Используется анонимный класс.
Во-2: "Программа не завершится, пока не завершатся все потоки" не совсем верно, потоки-демоны не должны завершаться, они всегда в фоне работают.
Разве демоны не завершаются после завершения остальных потоков?
@@ivanandreev9571 программа завершится при завершении всех не-демонов и в таком случае демоны конечно завершатся, но это следствие, а не причина
Что такое демоны?
Хоспадиии... Ну не увидишь ты никогда сообщение из потока MyThread раньше сообщения из main метода!!! Хоть сколько раз перезапускай. Ну ты же видишь, что не получается, ну подумай почему...
У тебя в main одна комманда - вывод текста.
В твоем потоке прежде чем вывести текст, выполняются 2 операции!!! Присвоение i = 0 и сравнение i < 1000. И лишь потом 3-я комманда - вывод текст. Потоки поочередно, как ты и сказал, забирают процессорное время, а значит не может твой поток выполнить 3 операции прежде, чем в main 1 выполнится - это не равноправно.
2024
Спасибо!
Спасибо 👍
Спасибо!