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

[最終更新] 2017年2月21日

準備

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は確認してませんが多分そうでしょう。

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

関連コンテンツ

関連記事

スポンサーリンク

コメントを残す

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