У меня есть большой проект Android с 50 различными экземплярами кода newSingleThreadExecutor(), которые запускаются различными непредсказуемыми событиями, включая нажатия кнопок пользовательского интерфейса. Немного исследовав, я думаю, что для каждого из 50 отдельных экземпляров кода создается один поток и будет поддерживать последовательный порядок выполнения вызовов исполнителю.Определение количества потоков, созданных Executors.newSingleThreadExecutor(). Execute?
Сколько потоков создано и есть ли проблема в поддержании последовательного выполнения в порядке вызовов исполнителю?
Примечание: код не используется, поэтому я смущен порядком исполнения и количеством созданных потоков. Например, что произойдет, если пользователь нажимает кнопку пользовательского интерфейса в сто раз очень быстро? Смогу ли я получить сто потоков, заканчивающихся в разное время, исходя из того, когда закончится фьючерс базы данных?
Ниже приведен порядок форматирования кода во всех 50 экземплярах.
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run()
{
// Executes multiple database calls using futures and
// Uses get() which waits if necessary for the computation to complete,
// and then retrieves its result.
}
});
Принято, лучше поздно, чем никогда. – DataBits