我有2個線程,線程A和線程B.如何在Python中使用管道文件描述符時檢查EOF?
線程A從sys.stdin或管道的讀取結束(使用os.pipe())獲取數據。無論讀取什麼數據(從sys.stdin或管道的讀取端),都會通過TCP套接字發送出去。線程A使用select.select()來確定它是應該從sys.stdin還是從管道的讀取端讀取,並且select.select()使用1秒超時來定期檢查並確保套接字連接是還在那兒。
線程B持有管道的寫入結束,並且通常只會將1個真正長的字符串寫入管道,然後關閉寫入結束。
線程A如何檢查管道上的EOF?基本上,我希望線程A在不再使用時關閉管道。但是,我不能冒險阻塞從管道讀取(),因爲然後sys.stdin上可用的數據將被不必要地阻止。
任何幫助將不勝感激。謝謝!
謝謝,這非常有用。線程B比我提到的要多,不能刪除;我只是試圖簡化我的程序,以便我只提供足夠的信息讓某人回答我的問題。再次感謝! – pcd6623 2010-07-21 20:49:30