Возможные проблемы с пользовательской шиной событий Java для многопоточности и производительностиJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Возможные проблемы с пользовательской шиной событий Java для многопоточности и производительности

Сообщение Гость »


Я пишу игровой движок, используя LWJGL (Java и OpenGL). Я написал шину событий, обеспечивающую шаблон паб-подписки (аналогично шине событий Guava). У меня есть класс приложения (одиночный), который создает шину событий. Когда клиент хочет получить уведомление о событии, он просто извлекает экземпляр шины событий из класса приложения и регистрирует свой класс на шине. После этого внутри зарегистрированного класса любой метод, помеченный @Event и содержащий правильный параметр, вызывается во время соответствующего события.

Мне интересно, какие проблемы с производительностью могут возникнуть при использовании этой конструкции, а также проблемы с многопоточностью.

Например:

публичный класс Foo { общественный Фу() { Application.getInstance().getEventBus().register(this); } @Событие public void onEvent (событие ApplicationUpdateEvent) { // Вызывается при обновлении приложения } } Этот дизайн использует отражение для вызова методов прослушивания, поэтому я уверен, что производительность при этом теряется, особенно во время чего-то вроде приведенного выше примера — вызываемого в цикле каждый раз при обновлении приложения.

Я не совсем понимаю, какие проблемы с многопоточностью могут возникнуть. Может быть, события отправляются или обрабатываются в одном потоке, а не в другом?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»