JAVA 时间间隔的实现

来源:百度知道 编辑:UC知道 时间:2024/06/29 23:54:37
比如说
System.out.println("你好,请等3秒");
Thread.sleep(3000);
System.out.println("你好,请等4秒");

最后只显示:你好,请等4秒

你好,请等3秒 没打印出来,这是为什么
是这样的,我有一个股票清单,要求清单中的时延,在textarea中打出一行

股票,价格,延迟
RM,96.00,5
Psion,48.50,10
Psion,49.00,24

由于是txt文件,所以我是一行一行读下来,读一行sleep一下。但这个方法只能等一会后一下打出来了 没有过程

读的方法是
public static ArrayList getPrice_changelist()
{
price_changelist.clear();
String value=ReadFromFile.readFileByLines(price_changelistAddress);
StringTokenizer st = new StringTokenizer(value,"*",true);
int i=0;
while(st.hasMoreElements() ){
try{
String str=st.nextToken();
if(!"*".equals(str)){
i++;
String temp[]=str.split(",");
Stock stock=new Stock();
stock.setSymbol(temp[0]);
stock.setPrice(Double.valueOf(temp[1]));
stock.setDelay(Integer.valueOf(temp[2]));
Thread.sleep(In

二楼的答案简直就是误人子弟,你不知道不要给别人乱说好不好,谁说sleep方法一定要写在run方法中,在任何方法的任何地方都可以写的,别忘了main函数也是一个主线程;
======================
PS:看你得程序应该不是线程不休眠的问题,按照你的写法是绝对会休眠的,分析一下你的这句话Thread.sleep(Integer.valueOf(temp[2]))*100); 休眠的时间是由temp[2]控制的,你能保证它得到的值一定是一个大于0的数字吗,还有它得到的值不会是字符吗?
所以建议你在Thread.sleep(Integer.valueOf(temp[2]))*100);之前打印一下temp[2]看看是否正确,还有类型转换应该是 Integer.parseInt(temp[2])不应该是Integer.valueOf这个方法

Thread是通过start实现线程运行的,系统会自动寻找名称为run的方法,你的sleep方法应该写在run方法中,understand?

你是写在什么方法里的?main方法里是没有问题的