[파이썬] subprocess `subprocess.BELOW_NORMAL_PRIORITY_CLASS`: 낮은 우선 순위 설정

In certain scenarios, it may be necessary to execute a subprocess in Python with lower priority than the default. This can be achieved by using the subprocess.BELOW_NORMAL_PRIORITY_CLASS constant provided by the subprocess module.

Why Set Low Priority?

Setting a lower priority for a subprocess can be useful in situations where you want to ensure that the main process or other vital processes are not affected or slowed down by the execution of the subprocess. This can be particularly beneficial when running resource-intensive tasks or long-running processes.

Using subprocess.BELOW_NORMAL_PRIORITY_CLASS

The subprocess.BELOW_NORMAL_PRIORITY_CLASS constant is specific to Windows operating systems. It is used to set the priority level of a subprocess to below the normal priority level. When this priority level is set, the operating system assigns the subprocess lower priority for resource allocation, meaning it will only receive resources after other processes with normal or higher priorities have been serviced.

Here’s an example of how to use subprocess.BELOW_NORMAL_PRIORITY_CLASS in Python:

import subprocess

subprocess.call(['some_command'], creationflags=subprocess.BELOW_NORMAL_PRIORITY_CLASS)

In the above code snippet, subprocess.call is used to execute the some_command subprocess. By passing the creationflags argument with the value subprocess.BELOW_NORMAL_PRIORITY_CLASS, we instruct the operating system to assign a lower priority to the subprocess.

Additional Notes

Conclusion

By using the subprocess.BELOW_NORMAL_PRIORITY_CLASS constant in the subprocess module, you can set the priority level of a subprocess to be lower than the normal priority level. This can be beneficial in scenarios where you want to ensure the smooth execution of vital processes without being affected by resource-intensive or long-running subprocesses.