6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
1

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

16.11.2014, 18:30. Показов 1943. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2014, 18:30
Ответы с готовыми решениями:

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

приоритеты.
Здраствуйте. Столкнулся вот с какой проблемой. Добавляю на форму компонент &quot;Panel: TPanel&quot;....

Область видимости общей переменной для потоков + закрытие потоков
Есть два вопроса про потоки. Первый. Как можно сделать общую переменную для основного потока и...

Создание и завершение процессов и потоков. Приоритеты выполнения потоков
Здравствуйте. Буду очень раз если поможете понять,что конкретно нужно сделать в вот этом...

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

Решение

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

Но в любом случае затраченное процессорное время (выводимое в виндовозовском Диспетчере задач) будет одно и то же, независимо от приоритета потока и/или процесса.
0
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
16.11.2014, 22:09  [ТС] 5
VTsaregorodtsev, понятно что время выполнения будет одинаковое, но при более низком приоритете потоки дольше в очереди стоят, а насчёт конкурирующих потоков есть же другие программы, которые обрабатываются процессором
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2014, 22:09

приоритеты операций
cout &lt;&lt; (5 &lt;&lt;3); что это за знак &lt;&lt; и где можно узнать приоритеты всех (или основных) операций в...

приоритеты операций
Интересную ошибку нахожу в книгах по части приоритетов операций в C++: например здесь и здесь...

Приоритеты операций
Почему в таблице приоритета операций постфиксный инкремент(декремент) имеет приоритет 2, если...

Стек и приоритеты
Ошибок при компиляции не возникает, но при проверке не выдает адресов элементов и их данных. Прошу...


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

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

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