代码之家  ›  专栏  ›  技术社区  ›  ollien

使用os.write时对multiprocessing.pipe()的recv执行阻塞

  •  0
  • ollien  · 技术社区  · 6 年前

    出于某种原因,以下代码永远阻塞

    read, write = multiprocessing.Pipe()
    os.write(write.fileno(), b"test\n")
    print(read.recv())
    

    但这不是

    read, write = multiprocessing.Pipe()
    write.send("test\n")
    print(read.recv())
    

    据我所知, multiprocessing.connection.Connection.send 只是打电话 os.write 在引擎盖下面,所以在我看来,没有理由不起作用。这是怎么回事?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ollien    6 年前