使用管道与多处理库进行进程通信我注意到 poll 函数的一些奇怪行为。如果我关闭管道 poll() 的另一端,则返回 true,这有点奇怪。python 文档并没有真正说明会发生什么。我仍然在想 poll() 如果管道中肯定没有任何东西并且另一端甚至是关闭的,那么至少会返回 false。我使用 python3.3.2 但它似乎与 python 2.7.5 相同。这是故意的还是错误的,如果不是错误,它有什么用?
import multiprocessing
if __name__ == '__main__':
con = multiprocessing.Pipe(True)
con1, con2 = con
print(str(con1.poll())) #prints False
con2.close()
con1.close()
con = multiprocessing.Pipe(True)
con1, con2 = con
con2.close()
print(str(con1.poll())) #prints True
con1.close()