Вы получаете диалоговое окно «Приложение не отвечает» (ANR) или приложение закрывается?
ANR появляется, когда поток петлителя пользовательского интерфейса занимает слишком много времени для возврата из вызова. Наличие 10 или 100 потоков не должно вызывать каких-либо проблем, если функция handleMessage возвращается своевременно.
Если вы действительно хотите ограничить количество потоков, которые должны выполняться за один раз, посмотрите ExecutorService
ExecutorService executorService = Executors.newFixedThreadPool(5);
executorService.submit(new Runnable() {
public void run() {
// This is your thread
}
});
Вы можете отправить все 10 заданий в службу executor, и они будут выполняться одно за другим, максимум 5 одновременно.