Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Остановка шедулера

Тема в разделе "Разработка плагинов для новичков", создана пользователем php5master, 30 янв 2017.

  1. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Я имел виду что шедулер не надо останавливать, если в нем if(!залогинен) есть.
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Нужно.Смотри.Я есть поток.Меня создали при входе входе игрока, и каждые 5 минут я проверяю условие.Если условие истинно я выполняю некоторые действия.Если условие ложно, то я ничего не делаю.Да, я ничего не делаю и результата моей работы соотв. нет.Но я существую.И я по прежнему каждые 5 минут проверяю условие.Так вот, если шедулер не нужен, его нужно убить, иначе он так и останется висеть и даже будет проверять условие.
     
  4. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Вообще-то его шедулер разовый и он нихера не делает всё время пока не сработает таймер. А когда сработает - делает, и делает это ОДИН раз и исчезает. Вообще я по кодингу тут многих заткнуть могу, я в школьные годы в олимпиаде четверть финала мира по кодингу участвовал. Так что про философию оптимизации я знаю не по наслышке.
     
  5. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Ок, ок.Понял.
    [​IMG]
    Только это.Тебя не смущает то, что если он разовый, то его не нужно останавливать?
     
  6. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Если в нём проверится всего лишь один иф и по определению выше - даже не будет выполнятся условие, то сама остановка займёт у процессора больше тактов, чем его выполнение. Так накой трахать мозг на эту остановку если в итоге будет даже ПРОИГРЫШ в тактах?
     
  7. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Действительно!И зачем только выше предлагали столько методов?Ребят, вы что там, совсем говнокодеры? :D
    Ладно, держи http://wiki.bukkit.org/Scheduler_Programming
     
  8. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Все кодеры не идеальны, так что, можно сказать, что все мы - говнокодеры
     
  9. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Нет, ну что бы не додуматься if вставить..Это уж слишком, ребят.
     
  10. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Просто зачастую многие инертны и продолжают делать то, что привыкли делать, даже там где это не надо.
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Как то не сходится. Не умеешь ты оптимизировать. Чсв поубавь.
     
  12. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Меня вынудили. И что там не сходится, пруфы есть?
     
  13. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Эх...Никак ты не поймёшь.Шедулеров есть несколько.Мы сейчас говорим о шедулере, который выполняет код внутри себя с некоторым интервалом.Такой шедулер выполняется условно бесконечно.То есть, ты, конечно, можешь поставить туда проверку, но выполнятся он не перестанет, он перестанет лишь выполнять код внутри проверки, что логично.Понимаешь?
     
  14. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Такой шедулер выполняется разово(единожды, единократно, один раз и всё). Понимаешь?
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Висячие шедулеры без дела, не есть оптимизация.
     
  16. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Согласен, но не в подобной ситуации.
     
  17. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я дал простое решение, как стопнуть шедулер в нужное время.
    Это можно юзать на выходе игрока и при успешном логине. Так у нас в памяти не будет лишних экземпляров. По 10 шедулеров на оигрока.
     
  18. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Для двух ивентов обработчики писать. А можно просто иф. =) Я как ленивая жопа выбрал бы второе. Но на вкус и цвет разные фломастеры...
     
  19. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    А потом этих шедулеров будет настолько много, что у JVM не хватит памяти и вырубится. Very nice
     
  20. Blc_Dragon

    Blc_Dragon Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    О - оптимизация.

    Хотя я вообще не пойму с чего вы срачку начали. Шелдуер в данном примере в принципе запущен не как таймер, а как разовый исполнитель.
     
  21. Mabus

    Mabus Активный участник Пользователь

    Баллы:
    76
    Skype:
    chervanenko
    Имя в Minecraft:
    Chervanenko
    Спасибо, есть же адекватные люди. ^_^ А то я себя совсем говном стал очучать....
     

Поделиться этой страницей