я немного не понимаю, как именно работает этот параллелелизм. вот в асинхронной парадигме все понятно: когда один таск что-то асинхронно ждет, может выполняться другой. но как этот гениальный главный поток решает, когда ему надо переметнуться на другой таск? при этом же надо ещё и контекст выполнения не потерять
но, исходя из того, что вечный цикл полностью не стопит игру, могу предположить, что, условно, главный тред принудительно отдает каждый n-ный такт процессора n-ному таску или что-то наподобие
Он один и выполняет сам просто это происходит быстро У тебя в тик есть две задачи у потока - обработать все таски майнкрафта и все таски плагинов Вот он по очереди их все выполняет Сначала майнкрафт потом например команды потом последовательно все методы ран всех раннаблов
@@BeBr0 ну если он попытается выполнить раннабл с вечным циклом, то больше из него не выйдет... или есть таймаут? опять же, почему это вообще почти не влияет на перформанс сервера?
@@kruase76 если ты в чистом виде запихнешь раннабл в метод run, то он из него не выйдет и будет выполнять этот раннабл вечно. Если раннабл не асинхонный А влияет или нет зависит от логики и того как быстро сервер выполнит эту логику. Если он не успеет за 1 тик, то длительность тика увеличится и соответственно tps упадет
в режиме одиночки, игра использует интегрированный сервер, но оптимизировано так, что сервер и клиент работают более слаженно (напрямую) и с меньшими накладными расходами. в режиме сетевой игры (то есть когда сервер запущен на пк), сервер и клиент работают в разных процессах, что приводит к дополнительному ожиданию на синхрон (пакеты и т.п.) -> увеличение задержки -> уменьшение фпс -> клиенту нужно больше времени чтобы обработать пакет что замедляет обработку рендеринга.
Вот только это называется конкурентость, а не параллелизм. То что ты как раз описал на примере с морковкой и картошкой - конкуретность. Можешь еще почитать поо многозадачности (вытесняющая и кооперативная) Параллелизмом же все это было, когда два игрока одновременно собтрали урожай, независимо друг от друга Пис
Не-а. Конкурентность спокойно может реализоваться в рамках одного потока, как раз твой случай. Параллелизм же, в традиционном понимании, никак не может быть в одном потоке
Если вызывается в одном потоке, работает на одном ядре. И это делается что бы убрать гонку данных во время канкаренси. А паралельно и в одном потоке - не бывает так. Вы имеете в виду наверное асихронность, но это не паралелизм, это не синхронное выполнение задач, что чередуются через обработчик, дескать Таск диспетчер
Люблю видео на тему разработки под bukkit, но есть нюанс: На 4:06 автор говорит "суть в том, что они (BukkitRunnable'ы или же задачи) всё ещё выполняются в одном потоке, просто параллельно", при этом далее автор поясняет 4:11 "т.е. созданные задачи выполняются последовательно". С этого момента пошла какая-то неразбериха, т.к. прилагательные "параллельный" и "последовательный" - это антонимы. Как раз в примере автора с картошкой задачи выполняются последовательно (поочередно), не параллельно и не одновременно.
Ку, советую тебе посмотреть в сторону Paper, там намного больше ивентов, а также намноооого более удобная реализация форматируемого текста. Тк это форк Spigot-а, то фишки спигота там есть
Ивенты там сделаны из спиготовских А еще подключить нмс с пейпером это целая история Про компоненты факт но я бы переписал их для своей апишки на более удобную реализацию (ну в целом что я и сделал)
Бро, крутое возвращение, контент топчик, но подумай плиз, мейби фон с белого поменять на что-то потемнее. Все прогеры, что сидят с 2 до 5 ночи скажут только спасибо
В документации бакита чётко написано, что бакитранбл абстрактная имплемкнтация раннабла джавы, а раннбл создаёт отдельный поток выполнения, а уже сама виртуальная машина джавы занимается распределением потоков между выделенными ядрами процессора Ты в перовом случае вызывешь замыкание в функции мэин и останавливаешь сервер, во втором случае замыканик произошло в отдельном потоке который никак не влияет на мэин функцию и виртуальная машина выкинула его на отдельное ядро Если попробовать запустить сервер с разным количеством ядер какой будет результат?
3:28 Ну не то что бы полностью одновременно, просто планировщик ОС быстро-быстро их между собой переключает (пока один выполняется, другой ждет) и создается иллюзия одновременности. 3:38 Ну.. нет, не выговорил, ты сказал "Параллелелизм", а технология называется "параллелизм" пара-ле-лизм. (Кстати осток ролика ты вроде продолжаешь говорить "параллелелизм" 3:38 - 4:10 Если ты правильно объяснил, то из твоих слов понятно, что это не параллелизм, а асинхронность. Выполняющаяся не параллельно, а конкурентно. 4:16 - 5:00 Параллелизм это, когда 2 игрока одновременно собирают морковку и картошку, вроде как ядра процессора нечто подобное реализуют, всё что относится к нескольким потокам или одному это конкурентность, когда задачи хотят выбиться в то что сейчас будет делать ядро процессора, в том или ином виде. Видео будто снято, что бы снять, объяснение не достаточное и скорее всего даже неверное. Если была цель нормальное объяснение (А когда дело доходит то программирования, другие под запретом), то нужно нормальное видео на +20 минут где объясняются возможные способы выполнения нескольких задач одновременно и приведены примеры кода этих методов (ну или что-то в этом духе), а этому видео к сожалению диз.
Урааа, ты вернулся!!! Я по твоим гайдам написал свой плагин для сервера! Но ещё плохо разбираюсь с конфигами.умл, и не могу понять как сделать настройки для кода в конфиге
я немного не понимаю, как именно работает этот параллелелизм. вот в асинхронной парадигме все понятно: когда один таск что-то асинхронно ждет, может выполняться другой. но как этот гениальный главный поток решает, когда ему надо переметнуться на другой таск? при этом же надо ещё и контекст выполнения не потерять
но, исходя из того, что вечный цикл полностью не стопит игру, могу предположить, что, условно, главный тред принудительно отдает каждый n-ный такт процессора n-ному таску или что-то наподобие
Он один и выполняет сам просто это происходит быстро
У тебя в тик есть две задачи у потока - обработать все таски майнкрафта и все таски плагинов
Вот он по очереди их все выполняет
Сначала майнкрафт потом например команды потом последовательно все методы ран всех раннаблов
@@BeBr0 ну если он попытается выполнить раннабл с вечным циклом, то больше из него не выйдет... или есть таймаут? опять же, почему это вообще почти не влияет на перформанс сервера?
@@kruase76 если ты в чистом виде запихнешь раннабл в метод run, то он из него не выйдет и будет выполнять этот раннабл вечно. Если раннабл не асинхонный
А влияет или нет зависит от логики и того как быстро сервер выполнит эту логику. Если он не успеет за 1 тик, то длительность тика увеличится и соответственно tps упадет
@@BeBr0 а, ну да, логично
вроде понял, спасибо)
в режиме одиночки, игра использует интегрированный сервер, но оптимизировано так, что сервер и клиент работают более слаженно (напрямую) и с меньшими накладными расходами.
в режиме сетевой игры (то есть когда сервер запущен на пк), сервер и клиент работают в разных процессах, что приводит к дополнительному ожиданию на синхрон (пакеты и т.п.) -> увеличение задержки -> уменьшение фпс -> клиенту нужно больше времени чтобы обработать пакет что замедляет обработку рендеринга.
Ну да именно из-за неслаженности работы один тик иногда фиксит рассинхроны предыдущего
Вот только это называется конкурентость, а не параллелизм.
То что ты как раз описал на примере с морковкой и картошкой - конкуретность. Можешь еще почитать поо многозадачности (вытесняющая и кооперативная)
Параллелизмом же все это было, когда два игрока одновременно собтрали урожай, независимо друг от друга
Пис
Как раз наоборот
Не-а.
Конкурентность спокойно может реализоваться в рамках одного потока, как раз твой случай.
Параллелизм же, в традиционном понимании, никак не может быть в одном потоке
@@SijyBooper Да, я тоже комментик написал о том что понятия сильно спутаны и автор почти постоянно называет вещи не так.
Если вызывается в одном потоке, работает на одном ядре. И это делается что бы убрать гонку данных во время канкаренси. А паралельно и в одном потоке - не бывает так. Вы имеете в виду наверное асихронность, но это не паралелизм, это не синхронное выполнение задач, что чередуются через обработчик, дескать Таск диспетчер
6:05 делай
Видео про поток
моё любимое
😁
Люблю видео на тему разработки под bukkit, но есть нюанс:
На 4:06 автор говорит "суть в том, что они (BukkitRunnable'ы или же задачи) всё ещё выполняются в одном потоке, просто параллельно", при этом далее автор поясняет 4:11 "т.е. созданные задачи выполняются последовательно".
С этого момента пошла какая-то неразбериха, т.к. прилагательные "параллельный" и "последовательный" - это антонимы.
Как раз в примере автора с картошкой задачи выполняются последовательно (поочередно), не параллельно и не одновременно.
Ку, советую тебе посмотреть в сторону Paper, там намного больше ивентов, а также намноооого более удобная реализация форматируемого текста. Тк это форк Spigot-а, то фишки спигота там есть
Ивенты там сделаны из спиготовских
А еще подключить нмс с пейпером это целая история
Про компоненты факт но я бы переписал их для своей апишки на более удобную реализацию (ну в целом что я и сделал)
Да и к чему тут про пейпер вообще
Ну, у тебя канал больше про Spigot, вот и порекомендовал
Привет, что думаешь насчет того, чтобы записать видео о плагинах на питоне(конечно это не плагин будет, а скрипт, но не суть)? PySpigot к примеру.
Я думаю что думать об этом не надо, но думаю что все же подумаю об этом
@@BeBr0 я думаю, что подумать стоило, спасибо, что подумал!!
Ура топ ютубер вернулся, видос шикарный.
Бро, крутое возвращение, контент топчик, но подумай плиз, мейби фон с белого поменять на что-то потемнее. Все прогеры, что сидят с 2 до 5 ночи скажут только спасибо
Я поменяю на зеленый и будет любой) Потому что сам офигел пока монтировал видео в 3 часа ночи
Спасибо, рад стараться!
В документации бакита чётко написано, что бакитранбл абстрактная имплемкнтация раннабла джавы, а раннбл создаёт отдельный поток выполнения, а уже сама виртуальная машина джавы занимается распределением потоков между выделенными ядрами процессора
Ты в перовом случае вызывешь замыкание в функции мэин и останавливаешь сервер, во втором случае замыканик произошло в отдельном потоке который никак не влияет на мэин функцию и виртуальная машина выкинула его на отдельное ядро
Если попробовать запустить сервер с разным количеством ядер какой будет результат?
Ты не понимаешь разницы между потоком сервера и потоками процессора
3:28 Ну не то что бы полностью одновременно, просто планировщик ОС быстро-быстро их между собой переключает (пока один выполняется, другой ждет) и создается иллюзия одновременности.
3:38 Ну.. нет, не выговорил, ты сказал "Параллелелизм", а технология называется "параллелизм" пара-ле-лизм. (Кстати осток ролика ты вроде продолжаешь говорить "параллелелизм"
3:38 - 4:10 Если ты правильно объяснил, то из твоих слов понятно, что это не параллелизм, а асинхронность. Выполняющаяся не параллельно, а конкурентно.
4:16 - 5:00 Параллелизм это, когда 2 игрока одновременно собирают морковку и картошку, вроде как ядра процессора нечто подобное реализуют, всё что относится к нескольким потокам или одному это конкурентность, когда задачи хотят выбиться в то что сейчас будет делать ядро процессора, в том или ином виде.
Видео будто снято, что бы снять, объяснение не достаточное и скорее всего даже неверное. Если была цель нормальное объяснение (А когда дело доходит то программирования, другие под запретом), то нужно нормальное видео на +20 минут где объясняются возможные способы выполнения нескольких задач одновременно и приведены примеры кода этих методов (ну или что-то в этом духе), а этому видео к сожалению диз.
Урааа, ты вернулся!!! Я по твоим гайдам написал свой плагин для сервера! Но ещё плохо разбираюсь с конфигами.умл, и не могу понять как сделать настройки для кода в конфиге
Подписывайся на его Дискорд канал, там помогают со всем, там уже более 1000 участников!
@@me4anicman Рахмат брат
Курс по джаве спигот ещё актуален?
Похоже на event loop в JS
Эта технология не уникальна для языка программирования
Она используется везде, если интересно, почитай про параллелизм и конкурентность
Когда спигот на Котлин? Я конечно уже перешëл, но со многим проблемы...
Следующее видео
@@BeBr0 ура
у этого бро реально продакш как у ютуберов миллионников
топчик
Дай угадаю, ты в дс написал что содержит тупые шутки почему ты пропадал, из-за этого ты вставил картинку со стройкой?
Да все так и было 😢
отец вернулся
Делай
бля то чуство, когда это правда но это так странно звучит.. я так рад что ты вернулся!
хахвхавхахвахвах
Ооооо старичок бэбро на аппарате одназначно 👍
Победа
6:05 делай