Я работаю над приоритетами потоков в моем приложении. Один поток в реальном времени запланирован с SCHED_RR
. Я использую pthread_setschedparam
, чтобы установить эту политику и приоритет для нее. pthread_setschedparam
принимает идентификатор потока в качестве первого аргумента, поэтому после создания потока с помощью boost::thread
я могу установить его приоритет в реальном времени.
Однако другой поток должен иметь определенный хороший уровень, но не планировать в реальном времени. Я могу использовать
pid_t tid;
tid = syscall(SYS_gettid);
int ret = setpriority(PRIO_PROCESS, tid, nicelevel);
, чтобы установить его хороший уровень на ǹicelevel
, но это работает, только если я изменю функцию потока, чтобы она содержала строки выше. Есть ли способ установить хороший уровень из метода, который создает поток?
Спасибо!