Я должен начать работу над параллелизмом задач. Мое настоящее приложение - это не что иное, как реализация шаблона производителя, но я чувствую, что есть определенная степень, в которой можно реализовать параллелизм.Инженерно-технический подход
My Runtime.getRuntime.availableProcessors дают 24, на моей машине работает около 8 процессов java, работающих параллельно y, я примерно предполагаю, что каждый процесс получает около трех процессоров для работы. Я просмотрел эту статью http://codeidol.com/java/java-concurrency/Applying-Thread-Pools/Sizing-Thread-Pools/ как хедз-ап. Но я все еще стараюсь найти правильный подход к решению параллелизма. То, что приходит мне на ум, - это: - a) Определите количество процессоров на машине b) Определите использование ЦП на один Java-процесс c) Определите соотношение времени, в течение которого поток ожидает результат базы данных до времени где поток фактически использует данные Может ли кто-нибудь направить меня к хорошему pdf, чтобы я мог поэтапно подходить к разработке производительности?
Я сказал в среднем 3 процессора/jvm процесса. Если в основной функции моего класса I Sysout Runtime.getRuntime.availableProcessors он может быть разным для разных вызовов, поэтому я принимаю число 3. – 100pipers
Как операционная система, так и JVM (как правило, некоторые реализации могут не соответствовать) поставите ограничение на количество процессоров, каждый дискретный поток будет использоваться, поэтому тот факт, что они доступны, не означает, что они все привыкают. –