关于java多线程
各位大神,我现在写了一个程序,使用多线程实现的,现在遇到这样的问题,如果我单步执行,它可以正确执行。但是让他直接运行的话,就卡住了,请大家看看怎么弄。相关代码如下:
while(true){
for(int i=0;i<itemList.size();++i){
Ping iPing=new Ping(itemList.get(i),ipList.get(i),isWarningList.get(i),timeoutList.get(i));
pings.add(iPing);
new Thread(iPing).start();
}
try {
Thread.sleep(1000*interval-System.currentTimeMillis()+timeBefore);
} catch (Exception e) {
// TODO: handle exception
}
。。。。。。。。。。。。。。。。。。。。。。。。
[解决办法]
线程起的太多了吧。。。
for(int i=0;i<itemList.size();++i){
Ping iPing=new Ping(itemList.get(i),ipList.get(i),isWarningList.get(i),timeoutList.get(i));
pings.add(iPing);
//每起一个线程,sleep一会,看看效果
new Thread(iPing).start();
}
try {
Thread.sleep(1000*interval-System.currentTimeMillis()+timeBefore);//这里先换成常量看看。
} catch (Exception e) {
// TODO: handle exception
}