我表达的不太清楚,我的意思是我的函数停在那不继续执行了.cpu空闲
解决方案 »
- 有趣的编程题
- 集合问题
- 新手问题
- 100分求JDK1.4.2!!
- applet jar包如何加载它引用的其它第三方包?不要编译到applet里,怎么解决?
- Unicode字符集中,一个汉字占几个字节?
- java基础for循环
- 老问题,在记事本中将回车替换为System.getProperty("line.separator")的最佳方法
- 关于finalize()调用
- 突然想到一个奇怪的问题:如果一个非abstract类中包含一个空方法体(及非Java代码写的方法体是空的)的native方法,编译会通过吗?
- 数租、矢量使用上有什么具体的区别吗?
- 大家使用jdbc connection的时候是即时连接尽早关闭,还是持续连接,避免反复开关啊?
在循环中加点sleep,gc什么的.
{
processurl();
}
public void processurl()
{
String url;
String site;
String sort;
Vector sortUrlV=new Vector();
Vector detailUrlV=new Vector();
String pageurl; sortUrlV=getnewsurl();
Enumeration sortUrlE=sortUrlV.elements();
while(sortUrlE.hasMoreElements()&& (!isStopped()) )
{
sort=sortUrlE .nextElement().toString().trim();
site=sortUrlE .nextElement().toString().trim();
url=sortUrlE .nextElement().toString().trim();
detailUrlV=getDetailUrl(url,site);
Enumeration detailUrlE=detailUrlV.elements();
while(detailUrlE.hasMoreElements() && (!isStopped()))
{
pageurl=detailUrlE.nextElement().toString() .trim();
try {
if (isSleepScheduled()) {
try {
Thread.sleep(SLEEP_TIME);
setSleepScheduled(false);
}
catch (InterruptedException ie) {
setStopped(true);
break;
}
}
getnews(pageurl, site, sort);
} catch (Exception e) {
setStopped(true);
break;
}
synchronized (this) {
if (isSuspended()) {
try {
this.wait();
setSuspended(false);
}
catch (InterruptedException ie) {
setStopped(true);
break;
}
}
}
if (Thread.interrupted()) {
setStopped(true);
break;
}
}
}
}
sortUrlV和detailUrlV比较大,getnews(pageurl, site, sort)运行一次要半分钟左右.经常是while循环执行不完就不继续了.
请大家帮忙看看什么问题,怎么解决一下?
另外,我用public synchronized void setStopped(boolean stop) {stopped = stop; }控制线程的暂停,可是isstopptd=ture却暂停不了,这是哪的问题?
3x