Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
#1

Приоритеты потоков

16.11.2014, 18:30. Просмотров 1027. Ответов 4
Метки нет (Все метки)

Здравствуйте, пишу две программы, в одной из которых обработка данных просто делится на потоки, а в другой я ещё придаю потокам более высокий приоритет, но проблема в том, что время выполнения от этого не меняется. Не могу понять в чём проблема, что делаю не так. Приоритеты я изменяю вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.......
for (int i = 1; i < argc; i++)
    {
 
        // Создание потока для выполнения функции обработки файла
        hThread[i-1] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, argv[i], 0, &IDThread[i-1]);       
 
    }
 
    if (!(SetThreadPriority(hThread[0], THREAD_PRIORITY_HIGHEST))) cout << "Fail 1\n";
    if (!(SetThreadPriority(hThread[1], THREAD_PRIORITY_ABOVE_NORMAL))) cout << "Fail 2\n";
    if (!(SetThreadPriority(hThread[2], THREAD_PRIORITY_HIGHEST))) cout << "Fail 3\n";
    if (!(SetThreadPriority(hThread[3], THREAD_PRIORITY_TIME_CRITICAL))) cout << "Fail 4\n";
    WaitForMultipleObjects (argc - 1, hThread, TRUE, INFINITE);
.......
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 18:30
Ответы с готовыми решениями:

Приоритеты операций
Доброго времени суток! Я недавно начал изучать С++. Читаю книгу &quot;Липпман. С++...

Создание потоков
Всем доброго времени суток. Как всегда, последняя надежда на этот сайт. Сразу к...

Синхронизация потоков с++
Реализовать модуль создающий 4 балансировочных потока обеспечивающий 100%...

Контроль звуковых потоков
Всем привет,не знал,где разместить тему,т.к вроде тема не для новичков,но на...

Самопроизвольное завершение потоков
Здравствуйте, делаю многопоточное приложение, пробовал использовать бустовские...

4
VTsaregorodtsev
518 / 446 / 67
Регистрация: 19.02.2010
Сообщений: 1,716
16.11.2014, 21:19 #2
А почему оно должно меняться? Независимо от приоритета потока - код выполняемой потоком=процессором программы остаётся же тем же самым.
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
16.11.2014, 21:56  [ТС] #3
VTsaregorodtsev, выше приоритет значит уделяется больше процессорного времени, точнее чаще, то есть выполнится быстрее из за того что процессор чаще обрабатывает эти потоки
0
VTsaregorodtsev
518 / 446 / 67
Регистрация: 19.02.2010
Сообщений: 1,716
16.11.2014, 22:01 #4
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Ну так если нет никаких других (конкурирующих) потоков на исполнение - проц и будет гонять только Ваш.

Но в любом случае затраченное процессорное время (выводимое в виндовозовском Диспетчере задач) будет одно и то же, независимо от приоритета потока и/или процесса.
0
SKS-65
5 / 5 / 4
Регистрация: 18.10.2011
Сообщений: 187
16.11.2014, 22:09  [ТС] #5
VTsaregorodtsev, понятно что время выполнения будет одинаковое, но при более низком приоритете потоки дольше в очереди стоят, а насчёт конкурирующих потоков есть же другие программы, которые обрабатываются процессором
0
16.11.2014, 22:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 22:09

C++ MPI выделение потоков
Здравствуйте, я к вам с немного нубским вопросом. Написал вот такой код: ...

Аналог потоков Delphi (TStream) в C++
Собственно, вопрос в названии. Есть ли аналог TStream в C++? Будьте добры,...

Причины последовательной работы потоков?
имею gcc 4.8 Следующий код: Имею такие глобальные переменные ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru