#include <thread>
#include <mutex>
#include <iostream>
#include <chrono>
#include <cstring>
#include <pthread.h>
std::mutex iomutex;
void thread_func(int num)
{
while(true) {
sched_param sch;
int policy;
pthread_getschedparam(pthread_self(), &policy, &sch);
std::lock_guard<std::mutex> lk(iomutex);
std::cout << "Thread " << num << " is executing at priority "<< sch.sched_priority << '
';
std::this_thread::sleep_for(std::chrono::seconds(2));
}
}
int main(int argc,char* argv[])
{
std::thread thd_1(thread_func, 1);
sched_param sch;
int policy;
pthread_getschedparam(thd_1.native_handle(), &policy, &sch);
sch.sched_priority = 20;
policy=SCHED_FIFO;
//policy=SCHED_RR;
//policy=SCHED_OTHER;
if (pthread_setschedparam(thd_1.native_handle(),policy, &sch)) {
std::cout << "Failed to setschedparam: " << std::strerror(errno) << '
';
}
thd_1.join();
return 0;
}