[c++] C++에서의 프로세스 우선순위 조절 방법
-
스레드 우선순위 설정: C++에서는
std::thread::native_handle
를 사용하여 운영체제의 스레드 우선순위를 설정할 수 있습니다.pthread_setschedparam
함수를 사용하여 우선순위를 조절할 수 있습니다. 아래는 Linux에서의 예시 코드입니다.#include <pthread.h> // set thread priority void set_thread_priority(std::thread& thread, int priority) { pthread_t native_handle = thread.native_handle(); struct sched_param params; params.sched_priority = priority; pthread_setschedparam(native_handle, SCHED_OTHER, ¶ms); }
-
프로세스 우선순위 변경:
setpriority
와 같은 함수를 사용하여 현재 프로세스의 우선순위를 변경할 수 있습니다. 아래는 Linux에서의 예시 코드입니다.#include <sys/resource.h> #include <unistd.h> // set process priority bool set_process_priority(int priority) { if (setpriority(PRIO_PROCESS, 0, priority) == 0) { return true; } else { return false; } }
이러한 방법을 사용하여 C++ 프로그램에서 프로세스 또는 스레드의 우선순위를 성공적으로 조절할 수 있습니다.
참고:
- POSIX 스레드 우선순위 설정: https://linux.die.net/man/3/pthread_setschedparam
- 프로세스 우선순위 설정: https://linux.die.net/man/2/setpriority