【发布时间】:2021-08-20 09:17:03
【问题描述】:
我正在创建服务器并在控制台中显示一些信息,问题是用户/管理员正在输入控制台线程仍在将输入打印到控制台,然后很难输入,甚至命令很复杂。
显示该问题的代码:
import threading
import random
import time
def some_process(): # simulation of server that print some info in background
for i in range(50)
time.sleep(random.randint(1, 3))
print("Some program output")
thread = threading.Thread(target=some_process)
thread.start()
while True:
shell = input("> ")
# rest of shell like "help", "exit" and some things like that
输出:
> connect localhoSome program output
st 4665 SSL=TrSome program output
ue
我的例外:
Some program output
Some program output
> connect localhost 4665 SSL=True # That line move then something print.
如果可能的话,我正在寻找大多数跨平台的解决方案。 (大多数都在寻找 windows 解决方案,但也需要是 linux)
【问题讨论】:
-
你正在同时做事
-
是的,因为一个线程正在接受对服务器的请求而另一个正在管理数据库,这里的代码是问题的示例。
-
如果您同时使用同一个控制台来显示程序的输出并接受用户的输入,那么您必须使用 Curses 之类的东西来复用控制台。
标签: python python-3.x input python-multithreading