Я не хороший программист на Java, это просто мое хобби, но я очень хочу узнать больше, чем средний материал.Java: Как масштабировать потоки в соответствии с ядрами процессора?
Я хочу решить математическую проблему с несколькими потоками в java. моя математическая проблема может быть разделена на рабочие единицы, которые я хочу решить в нескольких потоках.
но я не хочу иметь фиксированное количество потоков, работающих на нем, но вместо этого соответствующее количество потоков на количество ядер процессора. , и моя проблема в том, что я не мог найти для этого легкий учебник в Интернете. все, что я нашел, - это примеры с фиксированными потоками.
Итак, не могли бы вы помочь мне со ссылкой на хорошую технику или могли бы дать мне простой и хороший пример? Это было бы очень приятно :)
Это в основном правильно, но будьте осторожны с производительностью на процессорах, продаваемых с помощью «гиперпотоков» Intel. На четырехъядерном процессоре это вернет 8 вместо 4, но ваша производительность может фактически начать падение после 4 потоков - так что мои собственные тесты говорят мне :) – xcut
Привет, хорошо, не знал, что это возможно. , но когда я разбил одну задачу на несколько рабочих единиц, и мне нужно все решение части для окончательной работы, как это делается? Когда у меня есть несколько «yourThreads», как использовать для этого join(), потому что я не вижу, как эти несколько потоков различаются? :) BTW: ваша ссылка на пул потоков приводит меня к http://www.ibm.com/developerworks/library/j-jtp0730.html :) –
Посмотрите на пример здесь: http: // java. sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ExecutorService.html Он расскажет вам об упрощенном способе создания и управления пулом потоков. Сначала это может показаться более сложным, но как и в большинстве случаев, это сложнее, потому что, если бы это было проще, вы бы скорее ударили ограничения раньше. –