Pythonでプロセスの優先度を設定する(クロスプラットフォーム)

[投稿日] 2015年6月23日
[最終更新] 2016年8月10日

準備

WindowsとUnix環境の両方で、プロセスの優先度を下げるPythonのスクリプトです。つまりWindows、Mac、Linuxのいずれでも動くように。psutilを使うので、pipでインストールしておきます。

$ python -m pip install psutil

スポンサーリンク

サンプルコード

下記のコードは、実行するPythonスクリプトの優先度を下げます。

# -*- coding:utf-8 -*-
def lowpriority():
import os
import platform
import psutil
proc = psutil.Process( os.getpid() )
if platform.system() == 'Windows':
proc.nice( psutil.BELOW_NORMAL_PRIORITY_CLASS )
else:
proc.nice(19)

エラー処理とか何もしていませんが。

BELOW_NORMAL_PRIORITY_CLASS の部分はWindowsで使用するパラメータで、SetPriorityClass function (Windows)にあるパラメータ名に変更すると、優先度を下げたり上げたりできます。

proc.nice(19)はUnix環境で用います。-20が最も優先度が高く、20がもっとも優先度が低いです。

補足ですが、子プロセスは親プロセスのnice値を継承します。Windowsは確認してませんが多分そうでしょう。

以下を参考にさせていただきました。

コメントを残す

メールアドレスが公開されることはありません。