LinkedHashMap в эффекте - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 25.12.2016, 14:18   #11
Аватар для finfan
fin-ex.corp

Автор темы (Топик Стартер) Re: LinkedHashMap в эффекте

Спасибоу за разъяснения, в дальнейшем заюзаю конкурент хеш мэп, когда сделаю возможность эффектам: "Данный эффект может быть наложен одновременно только на одну/две/три и т.д. целей."
Быстро, оперативно и чётко запуляли ответами, класс ;D.
finfan вне форума Отправить сообщение для finfan с помощью Skype™ Ответить с цитированием
Непрочитано 27.12.2016, 04:15   #12
Пользователь

По умолчанию Re: LinkedHashMap в эффекте

Ты пытаешься реализовать что-то подобное радару из ревелейшен ? Интересно просто
nn03 вне форума Ответить с цитированием
Непрочитано 27.12.2016, 06:21   #13
Аватар для finfan
fin-ex.corp

Автор темы (Топик Стартер) Re: LinkedHashMap в эффекте

Цитата:
Сообщение от nn03 Посмотреть сообщение
Ты пытаешься реализовать что-то подобное радару из ревелейшен ? Интересно просто
Black Mark - метит мудилу. Следующее использовании Shadow Step перенесёт вас к отмеченной цели... etc.
Black List - позволяет метить до трёх целей подряд.

А потом мы можем переместиться к любой из этих трёх целей. Мапа нужна была для второй абилы.
finfan вне форума Отправить сообщение для finfan с помощью Skype™ Ответить с цитированием
Непрочитано 27.12.2016, 16:35   #14
Пользователь

По умолчанию Re: LinkedHashMap в эффекте

Цитата:
Сообщение от finfan Посмотреть сообщение
Black Mark - метит мудилу. Следующее использовании Shadow Step перенесёт вас к отмеченной цели... etc.
Black List - позволяет метить до трёх целей подряд.

А потом мы можем переместиться к любой из этих трёх целей. Мапа нужна была для второй абилы.
ухты прикольно, но тут веть есть много нюансов, расстояние, текстуры ...
nn03 вне форума Ответить с цитированием
Непрочитано 27.12.2016, 16:41   #15
Аватар для finfan
fin-ex.corp

Автор темы (Топик Стартер) Re: LinkedHashMap в эффекте

Цитата:
Сообщение от nn03 Посмотреть сообщение
ухты прикольно, но тут веть есть много нюансов, расстояние, текстуры ...
Эти ньюансы я уже пробил как следует и внёс необходимые правки, теперь, обидчика AW - будет ждать акт возмездия.
finfan вне форума Отправить сообщение для finfan с помощью Skype™ Ответить с цитированием
Непрочитано 27.12.2016, 17:57   #16
Пользователь

По умолчанию Re: LinkedHashMap в эффекте

Цитата:
Сообщение от finfan Посмотреть сообщение
Эти ньюансы я уже пробил как следует и внёс необходимые правки, теперь, обидчика AW - будет ждать акт возмездия.
как доделаешь , сними мув, интересно посмотреть очень
nn03 вне форума Ответить с цитированием
Непрочитано 05.01.2017, 16:01   #17
Аватар для krisadr
Пользователь

По умолчанию Re: LinkedHashMap в эффекте

Лично мое мнение по поводу любых коллекций и многопоточности.
используйте блокировки, причем использовать их нужно там где существует возможность вхождения нескольких потоков в чтение и запись.
А использование Concurrent на мой взгяд - костыль. Ибо при записи создается копия коллекции... что при определенных обстоятельствах может повести за собой баги или даже дюп.
Код:
Чтение
locker.enterReadLock();
Тут операции чтения из коллекции
locker.exitReadLock();

Запись
locker.enterWriteLock();
Тут операции записи коллекции (добавление\удаление)
locker.exitWriteLock();
Не знаю как в java но в c# реализация локера следующая
Код:
using System.Threading;

namespace Utils.Locks
{
    public sealed class ReadWriteLockerPro
    {

        private ManualResetEvent writeLock = new ManualResetEvent(true);
        private ManualResetEvent readLock = new ManualResetEvent(true);
        private int readers = 0;

        public void enterWriteLock()
        {
            readLock.WaitOne();
            writeLock.Reset();
        }
        public void exitWriteLock()
        {
            writeLock.Set();
        }
        public void enterReadLock()
        {
            writeLock.WaitOne();
            readLock.Reset();
            Interlocked.Increment(ref readers);
        }
        public void exitReadLock()
        {
            Interlocked.Decrement(ref readers);
            if (readers == 0)
                readLock.Set();
        }
    }
}
Суть - Читатели могут(параллельно) читать до тех пор пока в очередь не зайдет писатель. Если в момент вхождения писателя не все читатели закончили чтение писатель ждет пока читатели закончат чтение, Но новые читатели уже не могут читать. Как читатели закончили - писатель начинает писать. Если другой писатель (Практически исключено. Если так происходит - значит ваша архитектура - х**ня.) входит, то он ждет пока предыдущий писатель закончит писать. Как только писатели закончили писанину - разрешаем читателям, которые были в очереди - читать дальше.
PS удалять элементы коллекции в цикле итерации по самой же коллекции - нельзя. Выход - те элементы которые нужно удалить в цикле помещаем в коллекцию удаления. Прим ArrayList<item> deletedList;
и потом уже после цикла главной коллекции - добавляем цикл удаления если deletedList.count > 0. и в нем уже удаляем элементы из главной коллекции а после deletedList.clear();
krisadr вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LinkedHashMap JacQ100 Курилка / Yak floor 1 24.10.2016 14:51


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 01:24. Часовой пояс GMT +3.

Вверх