【发布时间】:2010-09-18 08:43:14
【问题描述】:
所以我有一个线程化的 Python 程序,它接受用户的输入并同时打印数据。问题是当程序位于 raw_input() 时,它不会打印任何内容,并且会在用户按下回车后将其全部打印出来。
有什么方法可以同时让用户输入和打印?
【问题讨论】:
-
"它不会打印任何东西,并且会在用户按下回车后全部打印" 这就是您的操作系统的工作方式。你期待什么?
标签: python multithreading
所以我有一个线程化的 Python 程序,它接受用户的输入并同时打印数据。问题是当程序位于 raw_input() 时,它不会打印任何内容,并且会在用户按下回车后将其全部打印出来。
有什么方法可以同时让用户输入和打印?
【问题讨论】:
标签: python multithreading
基本上,您有两个选择:线程和异步 IO。
您可以让一个线程用输入的数据填充队列,并让另一个线程打印其内容。请注意,线程很难(不可能?)做好。
异步 IO 意味着您有一个主调度程序,它在数据可用时调用回调(即用户已输入数据)。有一些框架可以为您抽象出大部分内容,例如 asyncore 和 Twisted。
大多数 GUI 工具包还将通过它们的主循环实现异步调度系统,即.. Tkinter、wxWidgets 和 pygtk。这也将解决您在混合读取和写入同一(终端)屏幕时遇到的界面问题。
【讨论】: