在查看 multiprocessing.terminate() 的python文档时,我遇到了以下问题:

基本上说,如果您终止使用队列,管道或类似程序的进程,则存在结构损坏的风险。
我对此有两个问题,

  • 如果发生损坏,另一个尝试从PIPE,Queue或类似文件中检索数据的进程将如何处理?
  • 进程如何检查是否有损坏?
  • 如果您知道另一个进程已终止,则可以以任何方式解决死锁吗?

  • 我了解您应始终尝试不使用终止,但这是在这种情况下您无法执行其他任何操作的情况

    最佳答案

    您可以将校验和添加到传递的数据块中,并检查它们以确认没有发生数据损坏。这是任何存在数据损坏风险的数据通信中的常用技术。您可以为此查看hashlib并使用诸如md5或crc32校验和之类的东西。

    关于python - 多处理,终止和损坏队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13376810/

    10-12 22:55