Накладные расходы с использованием ScheduledThreadPoolExecutor - PullRequest
1 голос
/ 02 марта 2011

Я использую ScheduledThreadPoolExecutor, чтобы задержать выполнение коротких задач на x промежуток времени (не более нескольких секунд).Я хотел бы знать, какие будут накладные расходы, если я планирую около 7K задач каждые 3 секунды.Есть ли лучшая альтернатива для этого (производительность)?

Ответы [ 2 ]

1 голос
/ 02 марта 2011

если бы я был на вашем месте, я бы посмотрел на Кварц: http://www.quartz -scheduler.org / , а затем решил для себя.

0 голосов
/ 02 марта 2011

Если вам действительно нужно сделать это многопоточным способом, я думаю, что не существует решений со значительно меньшими накладными расходами.

Однако, если все, что вам нужно, это отложенное выполнение, а не выполнение в разных потоках (например, для какого-либо моделирования), то, возможно, вы можете избавиться от накладных расходов на синхронизацию, выполнив все задачи, следовательно, в одном и том же потоке. Например, вы можете поместить свои задачи в PriorityQueue, упорядоченные по времени выполнения, и создать цикл выполнения задач, который будет запускать первую задачу из очереди во время ее выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...