Исключение слишком много потоков - PullRequest
2 голосов
/ 11 сентября 2009

Я сталкиваюсь с проблемой в разработке Blackberry. В моем приложении я должен получать изображения с сервера, поэтому мне нужно создать отдельный поток подключения для каждого изображения, которое я загружаю с сервера ... но при этом я получаю TooManyThreadsException..Any идеи относительно управления потоками ...

В Blackberry приложение может иметь до 16 потоков, работающих одновременно ... но мне нужно отображать более 16 изображений одновременно ...

Ответы [ 3 ]

5 голосов
/ 11 сентября 2009

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

Существует причина, по которой устройство допускает только 16 на процесс, и это связано с ресурсами. В основном вам приходится обходиться меньшим количеством потоков.

1 голос
/ 12 октября 2009

Меня учили, что динамическое создание потоков почти никогда не является хорошим подходом, я бы создал 1-2 рабочих потока с очередью, которая выполняла бы эту работу за меня.

1 голос
/ 11 сентября 2009

Вы сталкиваетесь с аналогичным ограничением в старых браузерах, таких как IE6, которые ограничивают вас двумя одновременными подключениями на домен.

Повторно используйте потоки и загружайте изображения последовательно на меньшее количество одновременных потоков (возможно, используя 2-3 потока для ускорения процесса).

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

...