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. 问题是,如果两个线程同时尝试写异常会导致并发问题吗?如果是,我如何stderr从线程中锁定和释放文件?

4

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 回答