ОН ВАМ НЕ ПОТОК | Bukkit Runnable в Spigot

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 49

  • @kruase76
    @kruase76 5 месяцев назад +2

    я немного не понимаю, как именно работает этот параллелелизм. вот в асинхронной парадигме все понятно: когда один таск что-то асинхронно ждет, может выполняться другой. но как этот гениальный главный поток решает, когда ему надо переметнуться на другой таск? при этом же надо ещё и контекст выполнения не потерять

    • @kruase76
      @kruase76 5 месяцев назад

      но, исходя из того, что вечный цикл полностью не стопит игру, могу предположить, что, условно, главный тред принудительно отдает каждый n-ный такт процессора n-ному таску или что-то наподобие

    • @BeBr0
      @BeBr0  5 месяцев назад

      Он один и выполняет сам просто это происходит быстро
      У тебя в тик есть две задачи у потока - обработать все таски майнкрафта и все таски плагинов
      Вот он по очереди их все выполняет
      Сначала майнкрафт потом например команды потом последовательно все методы ран всех раннаблов

    • @kruase76
      @kruase76 5 месяцев назад

      @@BeBr0 ну если он попытается выполнить раннабл с вечным циклом, то больше из него не выйдет... или есть таймаут? опять же, почему это вообще почти не влияет на перформанс сервера?

    • @BeBr0
      @BeBr0  5 месяцев назад +1

      @@kruase76 если ты в чистом виде запихнешь раннабл в метод run, то он из него не выйдет и будет выполнять этот раннабл вечно. Если раннабл не асинхонный
      А влияет или нет зависит от логики и того как быстро сервер выполнит эту логику. Если он не успеет за 1 тик, то длительность тика увеличится и соответственно tps упадет

    • @kruase76
      @kruase76 5 месяцев назад

      @@BeBr0 а, ну да, логично
      вроде понял, спасибо)

  • @plazmee
    @plazmee 5 месяцев назад

    в режиме одиночки, игра использует интегрированный сервер, но оптимизировано так, что сервер и клиент работают более слаженно (напрямую) и с меньшими накладными расходами.
    в режиме сетевой игры (то есть когда сервер запущен на пк), сервер и клиент работают в разных процессах, что приводит к дополнительному ожиданию на синхрон (пакеты и т.п.) -> увеличение задержки -> уменьшение фпс -> клиенту нужно больше времени чтобы обработать пакет что замедляет обработку рендеринга.

    • @BeBr0
      @BeBr0  5 месяцев назад

      Ну да именно из-за неслаженности работы один тик иногда фиксит рассинхроны предыдущего

  • @SijyBooper
    @SijyBooper 5 месяцев назад +4

    Вот только это называется конкурентость, а не параллелизм.
    То что ты как раз описал на примере с морковкой и картошкой - конкуретность. Можешь еще почитать поо многозадачности (вытесняющая и кооперативная)
    Параллелизмом же все это было, когда два игрока одновременно собтрали урожай, независимо друг от друга
    Пис

    • @BeBr0
      @BeBr0  5 месяцев назад

      Как раз наоборот

    • @SijyBooper
      @SijyBooper 5 месяцев назад +2

      Не-а.
      Конкурентность спокойно может реализоваться в рамках одного потока, как раз твой случай.
      Параллелизм же, в традиционном понимании, никак не может быть в одном потоке

    • @SergGin1
      @SergGin1 5 месяцев назад +2

      @@SijyBooper Да, я тоже комментик написал о том что понятия сильно спутаны и автор почти постоянно называет вещи не так.

  • @haxidenti6001
    @haxidenti6001 4 месяца назад

    Если вызывается в одном потоке, работает на одном ядре. И это делается что бы убрать гонку данных во время канкаренси. А паралельно и в одном потоке - не бывает так. Вы имеете в виду наверное асихронность, но это не паралелизм, это не синхронное выполнение задач, что чередуются через обработчик, дескать Таск диспетчер

  • @itsgeometrydash9899
    @itsgeometrydash9899 5 месяцев назад +4

    6:05 делай

  • @n1ksen23
    @n1ksen23 5 месяцев назад

    Видео про поток
    моё любимое
    😁

  • @РоманАникушин-ф4г
    @РоманАникушин-ф4г 5 месяцев назад

    Люблю видео на тему разработки под bukkit, но есть нюанс:
    На 4:06 автор говорит "суть в том, что они (BukkitRunnable'ы или же задачи) всё ещё выполняются в одном потоке, просто параллельно", при этом далее автор поясняет 4:11 "т.е. созданные задачи выполняются последовательно".
    С этого момента пошла какая-то неразбериха, т.к. прилагательные "параллельный" и "последовательный" - это антонимы.
    Как раз в примере автора с картошкой задачи выполняются последовательно (поочередно), не параллельно и не одновременно.

  • @dertfin1
    @dertfin1 5 месяцев назад

    Ку, советую тебе посмотреть в сторону Paper, там намного больше ивентов, а также намноооого более удобная реализация форматируемого текста. Тк это форк Spigot-а, то фишки спигота там есть

    • @BeBr0
      @BeBr0  5 месяцев назад

      Ивенты там сделаны из спиготовских
      А еще подключить нмс с пейпером это целая история
      Про компоненты факт но я бы переписал их для своей апишки на более удобную реализацию (ну в целом что я и сделал)

    • @BeBr0
      @BeBr0  5 месяцев назад

      Да и к чему тут про пейпер вообще

    • @dertfin1
      @dertfin1 5 месяцев назад

      Ну, у тебя канал больше про Spigot, вот и порекомендовал

  • @arseniy5537
    @arseniy5537 5 месяцев назад

    Привет, что думаешь насчет того, чтобы записать видео о плагинах на питоне(конечно это не плагин будет, а скрипт, но не суть)? PySpigot к примеру.

    • @BeBr0
      @BeBr0  5 месяцев назад +1

      Я думаю что думать об этом не надо, но думаю что все же подумаю об этом

    • @arseniy5537
      @arseniy5537 5 месяцев назад

      @@BeBr0 я думаю, что подумать стоило, спасибо, что подумал!!

  • @me4anicman
    @me4anicman 5 месяцев назад

    Ура топ ютубер вернулся, видос шикарный.

  • @ivan4ik-1
    @ivan4ik-1 5 месяцев назад

    Бро, крутое возвращение, контент топчик, но подумай плиз, мейби фон с белого поменять на что-то потемнее. Все прогеры, что сидят с 2 до 5 ночи скажут только спасибо

    • @BeBr0
      @BeBr0  5 месяцев назад

      Я поменяю на зеленый и будет любой) Потому что сам офигел пока монтировал видео в 3 часа ночи
      Спасибо, рад стараться!

  • @philipok924
    @philipok924 5 месяцев назад

    В документации бакита чётко написано, что бакитранбл абстрактная имплемкнтация раннабла джавы, а раннбл создаёт отдельный поток выполнения, а уже сама виртуальная машина джавы занимается распределением потоков между выделенными ядрами процессора
    Ты в перовом случае вызывешь замыкание в функции мэин и останавливаешь сервер, во втором случае замыканик произошло в отдельном потоке который никак не влияет на мэин функцию и виртуальная машина выкинула его на отдельное ядро
    Если попробовать запустить сервер с разным количеством ядер какой будет результат?

    • @BeBr0
      @BeBr0  5 месяцев назад

      Ты не понимаешь разницы между потоком сервера и потоками процессора

  • @SergGin1
    @SergGin1 5 месяцев назад +3

    3:28 Ну не то что бы полностью одновременно, просто планировщик ОС быстро-быстро их между собой переключает (пока один выполняется, другой ждет) и создается иллюзия одновременности.
    3:38 Ну.. нет, не выговорил, ты сказал "Параллелелизм", а технология называется "параллелизм" пара-ле-лизм. (Кстати осток ролика ты вроде продолжаешь говорить "параллелелизм"
    3:38 - 4:10 Если ты правильно объяснил, то из твоих слов понятно, что это не параллелизм, а асинхронность. Выполняющаяся не параллельно, а конкурентно.
    4:16 - 5:00 Параллелизм это, когда 2 игрока одновременно собирают морковку и картошку, вроде как ядра процессора нечто подобное реализуют, всё что относится к нескольким потокам или одному это конкурентность, когда задачи хотят выбиться в то что сейчас будет делать ядро процессора, в том или ином виде.
    Видео будто снято, что бы снять, объяснение не достаточное и скорее всего даже неверное. Если была цель нормальное объяснение (А когда дело доходит то программирования, другие под запретом), то нужно нормальное видео на +20 минут где объясняются возможные способы выполнения нескольких задач одновременно и приведены примеры кода этих методов (ну или что-то в этом духе), а этому видео к сожалению диз.

  • @Animeshka-ir9sy
    @Animeshka-ir9sy 5 месяцев назад

    Урааа, ты вернулся!!! Я по твоим гайдам написал свой плагин для сервера! Но ещё плохо разбираюсь с конфигами.умл, и не могу понять как сделать настройки для кода в конфиге

    • @me4anicman
      @me4anicman 5 месяцев назад

      Подписывайся на его Дискорд канал, там помогают со всем, там уже более 1000 участников!

    • @Animeshka-ir9sy
      @Animeshka-ir9sy 5 месяцев назад

      @@me4anicman Рахмат брат

  • @toprob4903
    @toprob4903 5 месяцев назад

    Курс по джаве спигот ещё актуален?

  • @ТимофейХайлайн
    @ТимофейХайлайн 5 месяцев назад

    Похоже на event loop в JS

    • @BeBr0
      @BeBr0  5 месяцев назад

      Эта технология не уникальна для языка программирования
      Она используется везде, если интересно, почитай про параллелизм и конкурентность

  • @Gradient881
    @Gradient881 5 месяцев назад

    Когда спигот на Котлин? Я конечно уже перешëл, но со многим проблемы...

    • @BeBr0
      @BeBr0  5 месяцев назад

      Следующее видео

    • @Gradient881
      @Gradient881 5 месяцев назад

      @@BeBr0 ура

  • @trc2
    @trc2 5 месяцев назад +1

    у этого бро реально продакш как у ютуберов миллионников

  • @Exept47
    @Exept47 5 месяцев назад

    топчик

  • @Gradient881
    @Gradient881 5 месяцев назад

    Дай угадаю, ты в дс написал что содержит тупые шутки почему ты пропадал, из-за этого ты вставил картинку со стройкой?

    • @BeBr0
      @BeBr0  5 месяцев назад

      Да все так и было 😢

  • @Lodaris
    @Lodaris 5 месяцев назад +1

    отец вернулся

  • @1lkovxd
    @1lkovxd 5 месяцев назад +1

    Делай

  • @makaron000pp
    @makaron000pp 5 месяцев назад

    бля то чуство, когда это правда но это так странно звучит.. я так рад что ты вернулся!

  • @potropetr
    @potropetr 5 месяцев назад

    хахвхавхахвахвах

  • @toprob4903
    @toprob4903 5 месяцев назад

    Ооооо старичок бэбро на аппарате одназначно 👍

  • @fungluckyt9020
    @fungluckyt9020 5 месяцев назад

    Победа

  • @terramain2325
    @terramain2325 5 месяцев назад +1

    6:05 делай