0

Ubuntuマシンでこれらのオプションを使用してcronをスケジュールします。

* */1 * * * python /path/to/script/my_script.py --pythonpath=/path/to/script/ 1>/path/to/script/success.log 2>/path/to/script/error.log

nこれは、内部のスレッドの数を分岐します。そして、各スレッドで例外をログに記録するために(発生した場合)、Pythonを使用していprint >>stderrます。問題は、2つのスレッドが同時に例外を書き込もうとすると、同時実行の問題が発生するかどうかです。はいの場合、どうすればstderrファイルをロックしてスレッドから解放できますか?

4

1 に答える 1

1

はい、あるスレッドからのスタックトレースの半分を取得してから、別の1つのスレッドからのスタックトレースを取得できます。

はいの場合、どうすればstderrファイルをロックしてスレッドから解放できますか

スレッド間で共有される他のすべてのリソースと同様に、ロックがあります。

import threading

stderr_l = threading.Lock()

def print_t(msg):
    with stderr_l:
        print msg

print_tスレッドからのみ使用します

于 2013-03-07T07:50:14.257 に答える