Если вас интересует параллелизм, я предлагаю вам взглянуть на другие модели параллелизма, такие как Futures
или Actors
. Темы и блокировки SOooo0o 2007.
Что касается вопроса о том, как сделать параллельный код быстрее, это вопрос на миллиард долларов, который имеет много подходов. Это полностью зависит от вашей проблемы и вашей архитектуры.
Так что начинать со своей проблемы - это не фантастическая проблема - использовать параллельные архитектуры, как вы можете видеть, потому что, например, скажем, у вас 9 потоков, и вы проверяете числа 2,3,4,5,6,7 , 8,9,10, это уже довольно плохо, потому что вам не нужно проверять 4,6,8,9,10, так как 2 и 3 показали бы, что они довольно плохие (хорошо, вы, вероятно, не будете проверять четные числа, но только чтобы доказать свою точку зрения). Поэтому некоторые проблемы не могут очень хорошо использовать параллельный код, как вы можете видеть здесь.
Что касается вашего вопроса о том, как эффективно распараллелить Java-код, то наиболее приемлемый ответ - нет. Программисты в наши дни больше заботятся о том, чтобы не блокировать потоки, которые обычно вращаются вокруг принципала don't call me we'll call you
. Но как написать эффективный параллельный код для математической задачи - это слишком широкий вопрос информатики.
Но в целом ваш вопрос слишком широкий.