目次
準備
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は確認してませんが多分そうでしょう。
以下を参考にさせていただきました。
コメント