4

私のスクリプトには複数のコンポーネントがあり、いくつかの部分だけが必要でありnice、優先度を低くして実行します。

Python のメソッドを 1 つだけにする方法はありniceますか、それとも複数のプロセスに分割する必要がありますか?

それが重要な場合、私はLinuxを使用しています。

4

1 に答える 1

7

開始時と終了時に実行中のプロセスをレニックするデコレータを作成できます。

import os
import functools

def low_priority(f):
    @functools.wraps(f)
    def reniced(*args, **kwargs):
        os.nice(5)
        try:
            f(*args,**kwargs)
        finally:
            os.nice(-5)
    return reniced

次に、次のように使用できます。

@low_priority
def test():
    pass # Or whatever you want to do.

免責事項:

  1. 私のマシンで動作しますが、os.niceがどれほど普遍的かわかりません。
  2. 以下に示すように、それが機能するかどうかは、OS /ディストリビューション、またはルートであるかどうかに依存する可能性があります。
  3. ニースはプロセスごとにあります。プロセスごとに複数のスレッドを使用する動作は、正常ではない可能性が高く、クラッシュする可能性があります。
于 2013-01-26T04:19:17.560 に答える