Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Работая под Linux (Redhat), пытаюсь изменить приоритет потока. Делаю это так:

#include <pthread.h>
#include <stdio.h>

static void *my_thread(void *arg)
{
	sleep(1);
}

int main(void)
{
	pthread_t thread;
	int priority;
	int policy;
	struct sched_param param;
	int res;

	pthread_create(&thread, NULL, my_thread, NULL);

	res = pthread_getschedparam(thread, &policy, &param);
	priority = param.sched_priority;
	printf("res = %d  policy = %d  priority = %d\n", res, policy, priority);

	param.sched_priority = 2;
	policy = SCHED_OTHER;
	res = pthread_setschedparam(thread, policy, &param);
	printf("res = %d\n", res);

	pthread_join(thread, 0);

	return 0;
}

В результате получаю:

res = 0 policy = 0 priority = 0

res = 22

Что делаю не так?

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...