我有一个程序,要占用很大的内存,但是又要用多线程的,所以内存占用量很大,
现在程序运行过程中突然不动了。也不抛出异常,物理内存的可以利用的部分不足10M。运行时加了java -Xms128m -Xmx1024m
请问有什么办法解决中止的问题?
现在程序运行过程中突然不动了。也不抛出异常,物理内存的可以利用的部分不足10M。运行时加了java -Xms128m -Xmx1024m
请问有什么办法解决中止的问题?
调试欢乐多
难道程序无法正常终止?楼主到底是想解决什么问题?
你怎么知道停住了?如果真的是停住了,是死锁吗?>>>需要手动才能停止
逻辑上的停止条件是什么,你希望什么时候它自己停止
那肯定是死锁了嘛如果是内存问题,肯定是会抛异常的
检查你的程序!
boolean flag = true;
if (threads.size() < threadNum) {
ImageDivideProcess idp = new ImageDivideProcess();
idp.setPImageName(pImageList[j].getName());
Thread t = new Thread(idp);
threads.addElement(t);
t.start();
} else {
while (flag) {
try {
Thread.sleep(100);
} catch (InterruptedException ite) {
ite.printStackTrace();
}
for (int i = 0; i < threads.size(); i++) {
Thread t = threads.elementAt(i);
if (!t.isAlive()) {
threads.removeElementAt(i);
ImageDivideProcess idp = new ImageDivideProcess();
idp.setPImageName(pImageList[j].getName());
t = new Thread(idp);
threads.addElement(t);
t.start();
flag = false;
break;
}
}
}
}
}
}