Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по ExecutorService / 9 сообщений из 9, страница 1 из 1
04.09.2012, 12:34:00
    #37942641
mre
mre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
Всем привет.

Есть сокет-сервер, пользователи шлют различные команды серверу, обработку каждой команды я запускаю в отдельном потоке:
Код: java
1.
2.
3.
_executor = Executors.newFixedThreadPool(20);
.....
_executor.execute(new Action(type, actionValue, vars, socket));


Но некоторые действия мне нужно выполнять последовательно, чтобы не нарушалась очередность команд, например, если пользователи находятся в одном бою.
Можно каким-то образом это реализовать с помощью ExecutorService, то есть, id боя привязать к конкретному потоку и в нем выполнять команды от юзеров, которые в этом бою в данный момент?
...
Рейтинг: 0 / 0
04.09.2012, 12:53:21
    #37942696
mre
mre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
Хм. или мне для каждого экземпляра Battle создавать Executors.newSingleThreadExecutor и в нем выполнять?
Так правильно будет?
...
Рейтинг: 0 / 0
04.09.2012, 12:55:25
    #37942704
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
На каждый бой свой Executors.newFixedThreadPool(1) - ну а какие команды туда слать - это уже ручками разрулите.
...
Рейтинг: 0 / 0
04.09.2012, 12:55:53
    #37942705
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
:)Сами догадались
...
Рейтинг: 0 / 0
04.09.2012, 12:56:17
    #37942707
mre
mre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
Спасибо!
...
Рейтинг: 0 / 0
04.09.2012, 19:46:35
    #37943440
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
mreХм. или мне для каждого экземпляра Battle создавать Executors.newSingleThreadExecutor и в нем выполнять?
Так правильно будет?Тогда уж лучше старый добрый Thread.
...
Рейтинг: 0 / 0
04.09.2012, 19:49:37
    #37943443
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
rfqmreХм. или мне для каждого экземпляра Battle создавать Executors.newSingleThreadExecutor и в нем выполнять?
Так правильно будет?Тогда уж лучше старый добрый Thread.
Чем лучше?
...
Рейтинг: 0 / 0
05.09.2012, 12:47:24
    #37944440
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
забыл никrfqпропущено...
Тогда уж лучше старый добрый Thread.
Чем лучше?
Да в общем-то ничем - я просто сначала подумал что вы хотите создавать executor на каждое действие, а Thread все же проще.
Но еще более подходящая модель - это модель акторов (каждая битва - актор). Актор, вообще говоря, не требует собственного потока или executor'a - множество акторов может выполняться на одном многопоточном executor'е. Существует много акторных библиотек. Самой простой в использовании я считаю df4j собственной разработки.
...
Рейтинг: 0 / 0
05.09.2012, 13:41:56
    #37944608
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ExecutorService
В принципе да, акторы тут в тему.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по ExecutorService / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]