Я использую red5 для mmo, и у меня проблемы с синхронизированными методами, методами, которые я использовал в MultiThreadedApplicationAdapter, всегда блокирующим следующий запрос.Это нормально?Потому что я выполняю некоторые операции с базами данных в этих методах, и этот синхронизированный блок делает мою производительность очень плохой.Я решил использовать кварцевые рабочие места, чтобы преодолеть эту стукуцию, как бы ни было в этот раз кластеризованная топология, которая вводит меня в заблуждение.Не могли бы вы помочь мне, является ли распространенным решением использовать кварц для решения этой проблемы, есть ли какой-нибудь орган, чтобы дать мне более разумный совет Спасибо
Я хочу сделать дополнение, чтобы очистить мой вопрос
После расширения MultiThreadedApplicationAdapter и создания моего переопределенного класса я реализовал функцию
public boolean connect(IConnection conn, IScope scope, Object[] params) {
, и в этой функции я хочу установить статус пользователя Online (как вы можете видеть, в этой функции нет синхронизированного литерала, однако ондействует так, как есть.) И я хочу взять пользовательскую сущность из базы данных, а затем установить сетевой статус и затем сохранить ее обратно. В этой части, даже если я не использую синхронизированный литерал, следующий приходящий клиент ожидает предыдущее завершение.Я чувствую, что должен создать другую работу с Quartz и выполнить операции с базой данных в этом потоке, однако я не уверен, что это снизит мою производительность.Есть ли другой способ предотвратить этот блок, это, кажется, ограничение Red5 ??Об этом также упоминается в блоге http://ria101.wordpress.com/2010/03/09/red5-cabin-fever-advanced-scope-and-room-management/