在大多数以控制台模式运行的服务器上,管理员可以输入命令,同时服务器也会输出诸如玩家死亡等文本。
我只是想知道如何复制这种效果。我到处搜索,甚至不知道它是如何完成的。
您需要了解线程。
所有程序都至少有一个线程,但大多数控制台应用程序只有一个。这样,一个程序一次只能做一件事。
将具有两个线程的程序想象成两个程序一起朝着一个目标工作。
您可以创建一个执行计算的线程,一个打印所有输出的线程和一个持续从键盘读取数据的线程。这将创建一个可以同时读写的程序。
另外,请记住,您需要使用多处理器机器才能让线程为您的程序提供真正的并行性。
这是一个可以同时从/向控制台读取和写入数据的 ruby 示例:
a = Thread.new do
while true do
puts "Hi There!"
sleep(1)
end
end
b = Thread.new do
while true do
puts gets.strip+"!"
end
end
a.join
b.join