Подходит ли пул потоков Java fork-and-join для выполнения задачи, связанной с вводом-выводом?

в моем приложении, я должен решить проблему, выполнив множество задач с привязкой к сети io и иногда одну задачу с привязкой к io, и разделить их на более мелкие задачи с привязкой к io. Эти задачи в настоящее время выполняются с использованием стандартного механизма пула потоков Java. Мне интересно, могу ли я перейти на платформу fork-and-join? Но вопрос в том, используется ли обычно фреймворк forkandjoin для решения операций с привязкой к io или с привязкой к ЦП? Я предполагаю, что они в основном предназначены для операций, связанных с процессором, потому что структура fork-and-join использует технику кражи работы для использования многоядерных процессоров, но если я использую ее для задач, связанных с вводом-выводом, будет ли какой-либо неблагоприятный эффект?

26
задан Shamik 21 November 2011 в 01:53
поделиться

1 ответ

Если вы пытаетесь решить аспект вашей проблемы, связанный с вводом / выводом, я сомневаюсь, что переключение со стандартных потоков на fork-and-join улучшит ситуацию ... при условии, что вы реализовали текущий потоковое решение правильно. (И, основываясь на ответе Алекса Миллера, переключение может на самом деле значительно ухудшить ситуацию.)

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

2
ответ дан 28 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: