【问题标题】:Are there any reasons not to mix Multiprocessing and Threading module in Python有什么理由不在 Python 中混合多处理和线程模块
【发布时间】:2011-06-05 16:59:02
【问题描述】:

我正在考虑使用 Python 来实现一个需要大量多线程的程序。另一个要求是它可以在桌面上运行,因此拥有许多进程会使应用程序显得凌乱且难以杀死(在任务管理器中)。因此,我正在考虑同时使用 Threading 和 Multiprocessing 模块来减少进程数量。据我了解,GIL 仅适用于单个流程。我的问题是:有什么理由不混合使用这两个模块吗?

【问题讨论】:

    标签: python windows multithreading python-3.x


    【解决方案1】:

    注意:此警告不适用于 Windows。

    小心!结合线程和多处理时,存在一个令人讨厌的锁错误,在使用日志模块时也会暴露出来。上周我一直被咬,子进程偶尔会挂起。现在我已经禁用了日志记录,到目前为止一切都很好(虽然不是最好的解决方案!)。:

    https://twiki.cern.ch/twiki/bin/view/Main/PythonLoggingThreadingMultiprocessingIntermixedStudy

    http://bugs.python.org/issue6721

    【讨论】:

    • 6721 错误与 Windows 上的线程/多处理无关
    • 对,错过了windows标签。
    • 你为我节省了数小时的调试时间......谢谢!
    【解决方案2】:

    除了KISS....的基本原理外,应该没什么问题。

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      相关资源
      最近更新 更多