问一个EraserThread问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:36:56
看林信良的JAVA学习笔记有一个例子怎么都想不明白,关于线程的第一个例子,运行结果怎么都不对:
输入名称:caterpillar
输入密码:##############################

还望哪位前辈赐教,拜谢了。
不知道为什么上传不了图片
EraserThread.java
https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/cab610/pic/item/60c71b19106bc1faac6e75ce.jpg

EraserThreadDemo.java
https://gss0.baidu.com/7LsWdDW5_xN3otqbppnN2DJv/cab610/pic/item/c9e64e96bf5da731d31b70ce.jpg

在eclipse的输出上面退格显示的是一个□,但是在cmd里面运行却不是,线程EraserThread将输入的文字抹去以#替换进行输出。
其实在输入密码的过程中,线程EraserThread在进行不断地退格\b与#的输出,而由于变化很快所以是看不出来的。因为很快在短短sleep(50)后马上这个密码位置就被#所填充了。
不过如果敲密码过快,来不及抹去还是会出现在屏幕上,
我也学到这个了,虽然很久远的问题,不过回答一下吧