程序代码如下:
public class test1 implements Runnable{
private List list=ArrayList();
public test1(){};
public void add(String file){
list.add(file);
} public void run(){
try{
while(true){
if(list.size()>0){
System.out.println((String)list.remove(0));
}
Thread.currentThread().sleep(10);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
上面的线程在运行了几天后就听了,add了以后,run就好像停止了,程序也没有出现异常。我问问,这是怎么回事?大家有没有遇到过这种问题?
public class test1 implements Runnable{
private List list=ArrayList();
public test1(){};
public void add(String file){
list.add(file);
} public void run(){
try{
while(true){
if(list.size()>0){
System.out.println((String)list.remove(0));
}
Thread.currentThread().sleep(10);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
上面的线程在运行了几天后就听了,add了以后,run就好像停止了,程序也没有出现异常。我问问,这是怎么回事?大家有没有遇到过这种问题?
我在运行线程的时候是一步一步打印出来的,发现add后,应该符合下面list.size()>0的条件,但是就是不执行,所以我怀疑run停止了。都是在第三天出现这种情况。
绝对没有出现异常,因为我所有调用或线程本身我都打出异常。
-------------------------------------test1 tt1= new test1();
new Thread(tt1).start();testMap.put("1",tt1);通过testMap获取,然后调用add方法的。
算了,我再继续找吧!结贴了