2015-01-15 4 views
1

Этот вопрос касается пулов потоков в Java и может быть очень общим.Конфигурация ThreadPoolExecutor

Класс Executors предоставляет два класса пулов потоков, которые могут быть конфигурированы с помощью класса ThreadPoolExecutor: ScheduledThreadPool и FixedThreadPool.

ThreadPoolExecutor позволяет установить количество основных потоков и максимальный размер пула потоков.

Таким образом, мой вопрос заключается в том, как выбрать эти значения - может быть связано с количеством процессоров или потоков, которые, как ожидается, будут отправлены, чтобы получить максимальную производительность и/или самое быстрое время выполнения.

Спасибо заранее,

Энрике

+0

Вы можете получить некоторое вдохновение здесь: http://stackoverflow.com/questions/130506/how-many-threads-should-i-use-in-my-java-program –

+1

Может быть, это будет полезно для вас : http://docs.oracle.com/javase/tutorial/essential/concurrency/further.html – DmitryKanunnikoff

ответ

1

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

Другое, тогда просто экспериментируйте и посмотрите, что дает лучший результат.

Смежные вопросы