【问题标题】:Python: threading or multiprocessing?Python:线程还是多处理?
【发布时间】:2012-02-13 17:00:09
【问题描述】:

问题

我需要每 15 秒对文件进行一次简短的写入(并在其余时间休眠)...在我看来,多线程或多处理可以通过拥有一个专用线程或进程来解决这个问题进行文件写入。在时间/可靠性以及内存占用方面哪个更好?

背景

我正在为 Chumby 编写一个小型 Python 应用程序(内存可用性有限——系统总内存为 128MB);为了阻止默认的 Chumby 控制面板在我杀死它后重新启动,需要每隔 15 秒左右写入一个临时文件,以“欺骗”通常会重新启动控制面板的看门狗进程。主应用程序可能正忙于做其他事情,我不想尝试“看时钟”,因为它正在做其他事情以确保它挤入临时文件写入。

【问题讨论】:

    标签: python multithreading file-io multiprocessing


    【解决方案1】:

    Chumby 似乎是基于 Linux 的,所以 signal.setitimer() 应该可用(前提是您可以访问 Python 2.6 或更高版本)。

    此函数允许您安装一个定期调用的处理程序,因此您不需要线程或进程。

    【讨论】:

    • 酷,这可能很有用。我回家后试试看!
    • 为了确保我理解这一点...我会使用signal.signal(signal.SIGUSR1,writetemp)(其中 writetemp 是我定义的执行文件写入的处理程序)和signal.setitimer(signal.ITIMER_REAL,15,15) 来初始化间隔?
    • @DoktorJ:你读过链接的文档吗? ITIMER_REAL对应的信号是SIGALRM
    • 抱歉,没看懂那部分(我只是在工作的午休时间做一些研究)...所以我不能向应用程序发送其他信号?只要我设置了处理程序,SIGALRM 会对应用程序产生任何不利影响吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2020-11-25
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多