2014-11-29 2 views
1

Как узнать, работает ли поток в C «запущен», «запущен», «заблокирован» или «завершен». Я знаю, существуют такие функции в Java, но не могу найти их в C ....Настройка приоритетов потоков в C

Кроме того, мне нужно несколько потоков с несколькими приоритетами, я действительно использовал pthread_attr_setschedparam с SCHED_RR политики и EXPLICIT наследования но он, похоже, работает?

Любые предложения, в которых я ошибаюсь?

Заранее спасибо

+0

Пожалуйста, перейдите по ссылке, описывающей [** Как задать вопрос **] (http://stackoverflow.com/questions/how-to-ask). Предоставление необходимых деталей, включая ваш код и связанные с ним ошибки, если таковые имеются, позволит всем здесь помочь вам с вашим вопросом. –

+0

@David Я не вижу, чего не хватает в этом вопросе. Вопрос ясен, и все требования к ответу предоставляются. Что вам не хватает? ОП спросил о том, как узнать о некоторой информации, зачем вам нужен код? – fuz

+0

Эй, могу я знать, как это сделать? –

ответ

2

Я расскажу вам последовательность, который должен следовать, чтобы назначить политику планирования ваших потоков.

1) Сначала вы создали pthread_attr_t attr переменную.

2) Инициализировать его - pthread_attr_init(&attr).

3) Установить явное наследование: pthread_attr_setinheritsched(&attr,PTHREAD_EXPLICIT_SCHED);

4) Затем установить политику планирования с использованием pthread_attr_setschedpolicy(&attr,SCHED_RR);

5) Наконец, создайте ваш поток pthread_create(&THREAD_NAME, &attr, FN_NAME, ARGS);

Вы можете использовать эту attr переменную, чтобы создать столько потоков как вы хотите, с политикой SCHED_RR.

Теперь, как вы проверяете, установлена ​​ли требуемая политика или нет? Вы должны использовать функцию pthread_attr_getschedpolicy. Обратитесь к странице MAN, чтобы узнать, как ее использовать. http://linux.die.net/man/3/pthread_attr_getschedpolicy

Использование не должно pthread_attr_setschedparam для установки политики SCHED_RR для потоков. Эта функция используется для назначения приоритетов вашим потокам. Для получения более подробной информации см. http://linux.die.net/man/3/pthread_attr_setschedparam.

Смежные вопросы