Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
6 / 6 / 3
Регистрация: 14.11.2016
Сообщений: 53
1

Как включить все ядра процессора при выполнении кода

15.12.2016, 21:38. Показов 6509. Ответов 2

Author24 — интернет-сервис помощи студентам
Читаю книгу о Java. Встретил пример бесконечного цикла:

Java
1
2
3
4
5
6
class Main {
    public static void main(String args[]) throws java.io.IOException {
       for (;;){
       }
    }
}
Решил запустить у себя эту программу. Залез в диспетчер задач и увидел, что у меня грузит данная вещь на 100 процентов только один процессор.

У меня шесть процессоров. В диспетчере задач указано, что нагрузка на процессор данной программой составляет 17 процентов. 100/6 приблизительно равна 17.

Поэтому возникла гипотеза, что Java у меня грузит только одно ядро из шести.

Я использую IntelliJ IDEA 2016, можно ли там включить опцию, чтобы были задействованы все ядра?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2016, 21:38
Ответы с готовыми решениями:

Как правильно обработать ошибки при выполнении кода?
Имеется код : public void addMedication(Set<ReservationMedication> reservationMedications) { ...

Как включить ядра процессора?
Здравствуйте! AMD A8-3850 четырёх ядерный Один раз отключил два ядра через msconfig. Теперь не...

Как включить все ядра?
Всем привет, помогите пожалуйста включить все ядра. У меня стоит Intel Core i3 4160, у него 2 ядра...

Программы используют не все ядра процессора
Всем привет! Проблема в следующем у меня стоит Intel Core i5 4670 на материнке asus h81m-e. И...

2
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
15.12.2016, 22:55 2
Запустите несколько потоков.
Java
1
2
3
4
5
6
7
8
9
        Thread[] threads = new Thread[Runtime.getRuntime().availableProcessors()];
        for (int i = 0; i < threads.length; i++) {
            threads[i] = new Thread(() -> {
                for (;;) {}
            });
        }
        for (Thread thread : threads) {
            thread.start();
        }
1
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
15.12.2016, 23:38 3
vjg2017, один поток не может грузить больше чем один процессор.
1
15.12.2016, 23:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2016, 23:38
Помогаю со студенческими работами здесь

Распараллелить выполнение цикла на все ядра процессора
Есть цикл for с очень большим количеством итераций, его выполнение отнимает кучу времени, хочу его...

Использовать все ядра процессора одним циклом
Кто знает, как это сделать? И действительно ли это уменьшит длительность цикла (если он конечный,...

Как включить "@echo off" при выполнении скрипта .rb
Начал изучать Ruby. Пишу примеры скриптов (файлы .rb). Использую irb из-под консоли линукс,...

Определить, как изменится значение указателя при выполнении кода
При выполнении операции: double *p; ++p; значение указателя р увеличится на: Выберите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru