我有2个线程,线程A和线程B。
线程A从sys.stdin或使用os.pipe()从管道的读端获取数据。无论从sys.stdin还是从管道的读端读取了什么数据,它都会被发送到TCP套接字上。线程A使用select.select()来确定它应该从sys.stdin还是从管道的读端读取,并且select.select()使用1秒超时定期检查并确保套接字连接仍然存在。
线程B持有管道的写端,通常只会向管道写入1个非常长的字符串,然后关闭写端。
如何让线程A检查管道上的EOF?基本上,我希望线程A在不再使用时关闭管道。但是,我不能冒险在从管道读取()时阻塞,因为这样会不必要地阻塞sys.stdin上可用的数据。
非常感谢您的帮助。谢谢!
线程A从sys.stdin或使用os.pipe()从管道的读端获取数据。无论从sys.stdin还是从管道的读端读取了什么数据,它都会被发送到TCP套接字上。线程A使用select.select()来确定它应该从sys.stdin还是从管道的读端读取,并且select.select()使用1秒超时定期检查并确保套接字连接仍然存在。
线程B持有管道的写端,通常只会向管道写入1个非常长的字符串,然后关闭写端。
如何让线程A检查管道上的EOF?基本上,我希望线程A在不再使用时关闭管道。但是,我不能冒险在从管道读取()时阻塞,因为这样会不必要地阻塞sys.stdin上可用的数据。
非常感谢您的帮助。谢谢!